实际上,我想问的太多了。
但是我想删除所有与扩展名“ .sh”(仅当前文件夹)匹配的文件,可以使用以下命令进行操作:
find . -maxdepth 1 -type f -name '*.sh' -exec rm {} +
但是我仍然希望保持当前文件夹中的文件“ cron.sh”不受影响。
如何在单个命令行中实现呢?
您可以使用-not
:
find . -maxdepth 1 -type f -name '*.sh' -not -name cron.sh -delete
另外,GNUfind
具有-delete
使用更简单的选择rm -rf
。
重要提示:始终放在-delete
最后。如中所述man find
:
警告:请不要忘记find命令行是作为表达式求值的,因此,将-delete放在首位将使find尝试删除指定起点以下的所有内容。
另外,您可以使用Shell循环(但不要,find
上面的命令效率更高):
for f in *.sh; do [ "$f" = "cron.sh" ] || rm "$f"; done
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句