压缩与解压

此页由Linux Wiki用户Chenxing于2016年3月5日 (星期六) 06:15的最后更改。 在复制粘贴陈明亮的工作基础上。

出自Linux Wiki

提示:此文已超过 8 年(3183 天)未更新,如发现内容过时或有误,欢迎改进:)

本文介绍Linux环境中处理rarzipgzbz2tar等常见压缩/归档文件的方法。如果你只是想了解解压所用的命令,请直接参考文末的总结表

如果你使用图形界面,可考虑GNOMEfile-roller或KDE的Ark,配合下述提到的软件包使用。

目录

7z

7-Zip 是“一款拥有极高压缩比的开源压缩软件”[1],它也可以处理 zip 等常见压缩格式。

# 解压文件,保留子文件夹结构
7z x 文件名
 
# 解压文件,但不创建任何子文件夹
7z e 文件名

使用 7z 和 convmv 可以解决 zip 文件的中文乱码问题,见 中文文件名乱码问题#处理zip文件乱码

rar

在Linux中可方便处理rar文件。如果只是解压,可安装unrar。unrar是RARLAB公开了源码的工具[2]

# 解压rar文件,保留子文件夹结构
unrar x rar文件名
 
# 解压rar文件,但不创建任何子文件夹
unrar e rar文件名
 
# 查看帮助
unrar h

如果需要制作rar文件,可以安装rar软件包并购买相应许可。rar也具备unrar功能,用法同上,只需把unrar换成rar即可。

zip

info-zip提供了自由的zip文件处理方案,一般可以从系统中安装zipunzip

unzip zip文件名

值得一提的是,如果zip中包括非UTF-8编码的中文文件名文件,解压结果中会出现乱码,解决该乱码问题请参考文件名编码转换

同样由于潜在的文件名编码问题,不建议在Linux中打zip包供Windows用户使用。

tar

tar实际上是个打包工具,将一些文件存放在一个单独的文件中,并不做压缩。[3]而真正的压缩是其与gzip或bzip2等工具配合完成的,故常见的后缀名为.tar.gz, .tar.bz2,解压方法:

tar xvf sample.tar
tar xvfz sample.tar.gz
tar xvfj sample.tar.bz2

几个参数中,x表示解压,v表示显示详细信息(可选),f表示从文件输入,z表示文件是经gzip压缩的,j表示文件是经bz2压缩的。

Hint.gif
提示:
较新版本的tar已经支持自动检测压缩方式,z或j参数可省去。

如需在Linux中创建压缩文件,推荐使用自由的tar与gzip组合,生成的文件同样兼容Windows中的常见压缩软件。例:

# 把MY_DIRS、MY_FILES打包并压缩成TARFILE.tar.gz文件
tar cvfz TARFILE.tar.gz MY_DIRS MY_FILES

bzip2

bzip2的压缩效果通常不错,但速度要慢一些[4],后缀为bz2

Hint.gif
提示:
bzip2和下面讲要讨论的gzip都是针对单个文件的压缩工具,配合前述的tar可以实现多文件归档。
# 压缩并删除文件"sample",生成"sample.gz2"
bzip2 sample
 
# 解压并删除bz2文件:
bunzip2 sample.bz2
 
# 解压但保留bz2文件:
bunzip2 -k sample.bz2
 
# 解压并输出bz2文件到屏幕:
bzcat sample.bz2
Hint.gif
提示:
bzip2的2是为了区别于受专利问题影响的、使用算术编码的老bzip版本。

gzip

gzip是Linux下常见的压缩格式,它的压缩速度相对bzip2而言要快一些。解压gzip文件:

# 压缩并删除文件"sample",生成"sample.gz"
gzip sample
 
# 解压并删除gz文件:
gunzip sample.gz
 
# 解压并输出gz文件到屏幕:
zcat sample.gz

总结表

常见压缩格式压缩与解压方法

文件后缀 解压命令 压缩命令
.zip (需要zip)
unzip File.zip
zip File.zip DirName
.rar (需要rar)
rar x File.rar
rar a File.rar
.tar (打包,不是压缩)
tar xvf File.tar
tar cvf File.tar DirName
.tar.gz, .tgz
tar zxvf File.tar.gz
tar zcvf File.tar.gz DirName
.tar.bz2, .tar.bz
tar jxvf File.tar.bz2
tar jcvf File.tar.bz2 Dir
.tar.Z
tar Zxvf File.tar.Z
tar Zcvf File.tar.Z DirName
.gz
gunzip File.gz
gzip File
.Z
uncompress File.Z
compress File
.bz2 (需要bzip2)
bunzip2 File.bz
bzip2 File

相关资料

  1. 7-Zip
  2. WinRAR archiver: Extras
  3. Wikipedia Tar
  4. Wikipedia: bzip2

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
个人工具
简体繁体转换