tar / gzip不包括某些文件

时间:2013-08-01 15:36:47

标签: linux bash unix gzip tar

我有一个包含许多子目录的目录。在某些子目录中,我的文件扩展名为*.asc,而某些文件的扩展名为*.xdr

我想创建一个SINGLE tarball / gzip文件来维护目录结构,但不包括*.xdr扩展名的所有文件。

我该怎么做?

我做过像find . -depth -name *.asc -exec gzip -r9 {} +这样的事情,但这会分别对每个*.asc文件进行gzip,这不是我想要做的。

2 个答案:

答案 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