我需要在目录中找到所有 .gz 文件而不是 .tar.gz 文件,然后将所有 .gz 文件发送到 some_other_command 进行处理。

我可以走这么远:
find . -regextype egrep -regex '.*/*\.gz$|[NOT .tar.gz]' -exec some_other_command -- '{}' '+'some_other_command 只需要 .gz 文件而不需要 .tar.gz 。正则表达式的 [NOT .tar.gz] 部分应该是什么?

最佳答案

你可以使用这个:

find . -name "*.gz" ! -name "*.tar.gz" -exec some_other_command -- '{}' '+'
       ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
       I want        I do not want

关于正则表达式 egrep 找到 .gz 但不是 .tar.gz,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25136041/

10-13 07:25