4

我是 bash/shell 脚本的新手。我想查找目录和子目录中不以“.log”结尾的所有文件。我知道我可以使用以下命令来获取以“.log”结尾的文件,但我需要不以该扩展名结尾的文件:

find /tmp/mallik5/ -iname "*.log"

我怎样才能做到这一点?

4

3 回答 3

6

这个find表达式可以使它:

find /tmp/mallik5/ ! -name "*.log"

如果您只是查找文件,请添加-type f

find /tmp/mallik5/ -type f ! -name "*.log"
于 2013-10-03T16:20:55.123 回答
2
find /tmp/mallik5 -type f ! -name '*.log'
于 2013-10-03T16:20:58.183 回答
2

通过了解 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实用程序的更多信息,请访问此处

于 2013-10-03T17:31:28.260 回答