压缩文件的解压与制作

出自Linux Wiki

在2012年1月2日 (一) 02:02由Chenxing (讨论 | 贡献)所做的修订版本

本文介绍Linux环境中处理rarzipgzbz2tar等常见压缩/归档文件的方法。

目录

rar

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

# 解压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实际上是个打包工具,将一些文件存放在一个单独的文件中,并不做压缩。[2]而真正的压缩是其与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的压缩效果通常不错,但速度要慢一些[3],后缀为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


相关资料

  1. WinRAR archiver: Extras
  2. Wikipedia Tar
  3. Wikipedia: bzip2
个人工具
简体繁体转换