我有一个shell脚本来自动为几个目录创建单独的tar文件; cd'ing到每个并调用命令:
tar cf pakage1.tar *.csv *.fmt
大多数目录包含.fmt和.csv文件,我需要一个解决方案,当* .csv可能不存在但* .fmt时,因此需要tar。我没有找到'忽略通配符如果找不到'命令,是否存在?
提前谢谢你。
答案 0 :(得分:3)
将find
与xargs
结合使用:
find . \( -name '*.csv' -or -name '*.fmt' \) -print0 | xargs -0 tar cf pakage1.tar
-print0
和-0
使用空分隔符而不是空格,否则会阻塞带有空格的文件名。