我是 bash/shell 脚本的新手。我想查找目录和子目录中不以“.log”结尾的所有文件。我知道我可以使用以下命令来获取以“.log”结尾的文件,但我需要不以该扩展名结尾的文件:
find /tmp/mallik5/ -iname "*.log"
我怎样才能做到这一点?
这个find
表达式可以使它:
find /tmp/mallik5/ ! -name "*.log"
如果您只是查找文件,请添加-type f
:
find /tmp/mallik5/ -type f ! -name "*.log"
find /tmp/mallik5 -type f ! -name '*.log'
通过了解 GNU Find util 是最合适的工具,您已经完成了任务。
几个快速解决方案将是:
find /tmp/mallik5/ -not -name *.log
find /tmp/mallik5/ ! -name *.log
如果您尝试对 find 的结果采取措施,您可以尝试:
find /tmp/mallik5/ -not -name *.log -print0 | xargs -0 rm -f
上述行帮助您查找和删除名称不以 *.log 结尾的文件
模式匹配知识是解决任务的关键,了解更多。点击这里
要了解有关GNU find实用程序的更多信息,请访问此处