我使用创建了一个 tarball tar zcf arhive.tar.gz dir/
,一切正常。现在我想将其拆分为两个简单的存档,一个仅用于图像,另一个用于其他所有内容。
似乎没有一种简单而干净的方法来做到这一点。因为tar
我只能排除文件,排除除 gif、jpg 和 png 之外的所有扩展名是不合理的。
要包含,我必须使用find
-exec
或| xargs
。这种方法还算有效,但如果文件名中有空格或特殊字符(撇号、引号),就会失效。那么现在我必须将所有文件名导入管道,然后awk
手动转义它们吗?
我遗漏了什么?为什么这么复杂?
我只是想tar zcf archive-images.tar.gz dir/ --match-only=*.png
答案1
使用find ... -print0 | xargs -0 tar...
这两个选项是为了处理带有空格的文件名。