我有一个包含许多子目录的目录。在其中一些子目录中,我有带有*.asc
扩展名的文件和一些带有*.xdr
.
我想创建一个 SINGLE tarball/gzip 文件,该文件维护目录结构但排除所有带有*.xdr
扩展名的文件。
我怎样才能做到这一点?
我做了类似的事情,find . -depth -name *.asc -exec gzip -r9 {} +
但这对每个*.asc
文件单独进行 gzip 压缩,这不是我想要做的。
您需要使用以下--exclude
选项:
tar -zc -f test.tar.gz --exclude='*.xdr' *
gzip 将始终单独处理文件。如果您想要一个捆绑的存档,您必须先 tar 文件,然后 gzip 结果,因此您最终会得到一个 .tar.gz 文件或简称 .tgz。
为了更好地控制您正在做的事情,您可以首先find
使用您已经发布的命令(使用 -print 而不是 gzip 命令)将文件放入文件中,然后使用此文件(=filelist.txt)指示 tar 归档什么
tar -T filelist.txt -c -v -f myarchive.tar