我目前有这个脚本:
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