我有一个包含许多子目录的目录。在某些子目录中,我的文件扩展名为*.asc
,而某些文件的扩展名为*.xdr
。
我想创建一个SINGLE tarball / gzip文件来维护目录结构,但不包括*.xdr
扩展名的所有文件。
我该怎么做?
我做过像find . -depth -name *.asc -exec gzip -r9 {} +
这样的事情,但这会分别对每个*.asc
文件进行gzip,这不是我想要做的。
答案 0 :(得分:34)
您需要使用--exclude
选项:
tar -zc -f test.tar.gz --exclude='*.xdr' *
答案 1 :(得分:1)
gzip将始终单独处理文件。如果你想要一个捆绑存档,你必须首先tar文件,然后gzip结果,因此你最终会得到一个.tar.gz文件或.tgz。
为了更好地控制你正在做的事情,你可以先使用你发布的命令find
文件(使用-print而不是gzip命令)并将它们放入文件中,然后使用它file(= filelist.txt)指示tar存档的内容
tar -T filelist.txt -c -v -f myarchive.tar