如何gzip压缩在所有子目录中的所有文件到在bash一个压缩文件(How to gzip all f

2019-07-31 10:51发布

可能重复:
gzip压缩了一组目录,并创建一个tar压缩文件

这篇文章介绍如何在目录结构中的单独gzip压缩每个文件。 但是,我需要做的事情略有不同。 我需要产生一定的目录下的所有文件,一个大的gzip文件。 我还需要能够指定输出文件名的压缩文件(例如,files.gz),并覆盖旧的压缩文件的文件,如果一个已经存在。

Answer 1:

tar -zcvf compressFileName.tar.gz folderToCompress

一切都在folderToCompress会去compressFileName

编辑:回顾和评论后,我意识到,人们可能会感到困惑与compressFileName没有扩展名。 如果你愿意,你可以使用扩展名为.tar.gz(的建议)与compressFileName



Answer 2:

有很多的工作递归命令行和其良好的知道到底受众是谁压缩方法。

即如果要发送给某人运行Windows,然后压缩很可能是最好的:

zip -r file.zip folder_to_zip

unzip filenname.zip

对其他Linux用户或你的自我焦油是伟大的

tar -cvzf filename.tar.gz folder

tar -cvjf filename.tar.bz2 folder  # even more compression

#change the -c to -x to above to extract

我们必须小心焦油和事物是如何柏油路上/中提取,例如,如果我跑

cd ~
tar -cvzf passwd.tar.gz /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd


pwd

/家/名为myUsername

tar -xvzf passwd.tar.gz

这将创建的/ home /名为myUsername / etc / passwd文件

不确定的,如果焦油的所有版本中做到这一点:

 Removing leading `/' from member names


Answer 3:

@amitchhajer的帖子适用于GNU焦油。 如果有人发现这篇文章,需要它到非上运行GNU系统,他们可以这样做:

tar cvf - folderToCompress | gzip > compressFileName

为扩大档案:

zcat compressFileName | tar xvf -


文章来源: How to gzip all files in all sub-directories into one compressed file in bash