使用 find 收集文件

使用 find 收集文件

我目前有这个脚本:

find . -name '*.log' -print0 | xargs -0 tar zcf $file

收集所有“*.log”文件。我想修改它以包含所有“.txt”文件,但我不知道如何,这应该相当简单,对吧?

答案1

有多种方法可以更改 find 命令。这是一个:

find . \( -name '*.log' -o -name '*.txt' \) -print0

-o是一个 OR 运算符,因此如果第一个条件失败,则检查第二个条件。如果您有 GNU find,您还可以使用适当命名的-or.请注意,如果第一个表达式成立,则不会计算第二个表达式。

答案2

如果您使用-regex标志而不是-name可以将名称指定为正则表达式:

find . -regex '.*\.\(log\|txt\)' -print0 | xargs -0 tar zcf $file

相关内容