tar / gzip不包括某些文件

问题描述 投票:15回答:2

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

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

我怎样才能做到这一点?

我做了像find . -depth -name *.asc -exec gzip -r9 {} +这样的东西,但这个gzips每个*.asc文件单独,这不是我想要做的。

linux bash unix gzip tar
2个回答
34
投票

你需要使用--exclude选项:

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


1
投票

gzip将始终单独处理文件。如果你想要一个捆绑的存档,你必须首先tar文件然后gzip结果,因此你最终会得到一个.tar.gz文件或.tgz。

为了更好地控制您正在做的事情,您可以首先使用您已发布的命令(使用-print而不是gzip命令)对文件进行find并将它们放入文件中,然后使用此文件(= filelist.txt)指示tar存档的内容

tar -T filelist.txt -c -v -f myarchive.tar
© www.soinside.com 2019 - 2024. All rights reserved.