压缩文件的解压与制作
出自Linux Wiki
本文介绍Linux环境中处理rar、zip、gz、bz2、tar等常见压缩/归档文件的方法。
目录 |
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文件处理方案,一般可以从系统中安装zip或unzip:
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压缩的。
如需在Linux中创建压缩文件,推荐使用自由的tar与gzip组合,生成的文件同样兼容Windows中的常见压缩软件。例:
# 把MY_DIRS、MY_FILES打包并压缩成TARFILE.tar.gz文件 tar cvfz TARFILE.tar.gz MY_DIRS MY_FILES
bzip2
bzip2的压缩效果通常不错,但速度要慢一些[3],后缀为bz2。
# 压缩并删除文件"sample",生成"sample.gz2" bzip2 sample # 解压并删除bz2文件: bunzip2 sample.bz2 # 解压但保留bz2文件: bunzip2 -k sample.bz2 # 解压并输出bz2文件到屏幕: bzcat sample.bz2
gzip
gzip是Linux下常见的压缩格式,它的压缩速度相对bzip2而言要快一些。解压gzip文件:
# 压缩并删除文件"sample",生成"sample.gz" gzip sample # 解压并删除gz文件: gunzip sample.gz # 解压并输出gz文件到屏幕: zcat sample.gz