关于linux:tar / gzip,不包括某些文件

tar/gzip excluding certain files

我有一个有很多子目录的目录。在这些子目录中,我有一些扩展名为*.asc的文件,有些扩展名为*.xdr的文件。

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

我该怎么做?

我做了类似于find . -depth -name *.asc -exec gzip -r9 {} +的事情,但是这个gzip每个*.asc文件都是单独的,这不是我想做的。


您需要使用--exclude选项:

tar -zc -f test.tar.gz --exclude='*.xdr' *


gzip总是单独处理文件。如果您想要一个捆绑的归档文件,您必须先对文件进行tar,然后对结果进行gzip,因此您最终将得到一个.tar.gz文件或.tgz文件。

为了更好地控制您正在做的事情,您可以首先使用您已经发布的命令(使用-print而不是gzip命令)来find文件,并将它们放入一个文件中,然后使用该文件(=filelist.txt)来指示tar如何存档。

1
tar -T filelist.txt -c -v -f myarchive.tar