可能的重复:
压缩一组目录并创建tar压缩文件
这篇文章介绍了如何在目录结构中分别gzip每个文件。但是,我需要做些不同的事情。我需要为某个目录下的所有文件生成一个大的gzip文件。我还需要能够指定压缩文件的输出文件名(例如,files.gz)并覆盖旧的压缩文件(如果已经存在)。
—
心教堂
可能的重复:
压缩一组目录并创建tar压缩文件
这篇文章介绍了如何在目录结构中分别gzip每个文件。但是,我需要做些不同的事情。我需要为某个目录下的所有文件生成一个大的gzip文件。我还需要能够指定压缩文件的输出文件名(例如,files.gz)并覆盖旧的压缩文件(如果已经存在)。
Answers:
tar -zcvf compressFileName.tar.gz folderToCompress
folderToCompress中的所有内容都将进入compressFileName
编辑:经过审查和评论,我意识到人们可能会对compressFileName感到困惑,而没有扩展名。如果需要,可以将.tar.gz扩展名(如建议的那样)与compressFileName一起使用
compressFileName
使其包含.tar.gz
扩展名,否则会让其他所有人发疯。
tar -zcvf two-dirs.tar.gz dir-one dir-two
将创建一个包含两个目录的存档。
有许多压缩方法可以递归地在命令行中运行,并且很好地了解最终用户是谁。
也就是说,如果要将其发送给运行Windows的人,则最好使用zip:
zip -r file.zip folder_to_zip
unzip filenname.zip
对于其他Linux用户或您自己的tar很棒
tar -cvzf filename.tar.gz folder
tar -cvjf filename.tar.bz2 folder # even more compression
#change the -c to -x to above to extract
必须注意tar以及事物如何被解焦/提取(例如,如果我跑步)
cd ~
tar -cvzf passwd.tar.gz /etc/passwd
tar: Removing leading `/' from member names
/etc/passwd
pwd
/ home / myusername
tar -xvzf passwd.tar.gz
这将创建/ home / myusername / etc / passwd
不确定所有版本的tar是否都这样做:
Removing leading `/' from member names
@amitchhajer的帖子适用于GNU tar。如果有人找到此帖子并需要它在NON GNU
系统上工作,则可以执行以下操作:
tar cvf - folderToCompress | gzip > compressFileName
要扩展档案:
zcat compressFileName | tar xvf -
pigz
,它更快,因为它可以更好地利用cpu(zip的多线程实现)。
gzip
就其本质而言,仅压缩单个文件。要将多个文件放入一个文件中以进行后续gzip压缩,请使用tar
。