我目前有这个脚本:
find . -name '*.log' -print0 | xargs -0 tar zcf $file
Run Code Online (Sandbox Code Playgroud)
收集所有“*.log”文件。我想修改它以包含所有“.txt”文件,但我不知道如何,这应该相当简单吧?
有多种方法可以更改您的查找命令。这是一个:
find . \( -name '*.log' -o -name '*.txt' \) -print0
Run Code Online (Sandbox Code Playgroud)
的-o
是OR运算符,因此,如果第一条件失败,则第二条件被检查。如果你有 GNU find,你也可以使用恰当命名的-or
. 请注意,如果第一个表达式成立,则不会评估第二个表达式。
如果您使用-regex
标志而不是-name
可以将名称指定为正则表达式:
find . -regex '.*\.\(log\|txt\)' -print0 | xargs -0 tar zcf $file
Run Code Online (Sandbox Code Playgroud)