关于文件压缩
文件压缩对于管理员及普通用户来说极为常见。大家往往需要对大量文件进行压缩以节约磁盘空间,或者将数据在不同位置之间往来迁移。而在使用互联网连接时,压缩数据能够显著节约带宽占用及传输时间。Linux平台自带多种快速有效工具,能够将文件体积压缩40%到80%。今天,我们将分享15款最为出色的压缩工具供大家选择。
适用场景
尽管大多数数据压缩工具适用于全部Linux版本,但这里我们将采用Mint 17 Linux作为演示。
1.tar文件压缩
这里的tar一词源自tape archive,即磁带归档。这款工具在Linux管理员中***人气,且能够对gzip、bzip2乃至lzip等多种文件格式进行归档。
在Debian/Ubuntu中安装tar:
- # apt-get install tar
在CentOS中安装tar:
- # yum install tar
tar命令中的***参数必须来自Acdrtux。
示例
创建一个512 MB大小的文件:
- # fallocate -l 512M um.img
创建归档:
- # tar -cvfz um.tar.gz um.img
-c – 创建归档,-v – 冗余,-f 代表归档文件,-z 代表将文件压缩为gzip格式。
使用man命令可获取更多细节信息。
2.gzip文件压缩
gzip工具是Linux当中***人气的快速文件压缩工具,其能够保留原始文件名并为其添加.gz扩展名与时间戳。各类Linux发行版通常都提供其内置软件包,即使不具备,大家也能轻松完成安装。
ubuntu环境:
- # apt-get install gzip
CentOS环境:
- # yum install gzip
示例:
- # gzipexamplefile
获取关于压缩文件的信息:
- # gzip -l examplefile.gz
- compressed uncompressed ratio uncompressed_name
- 203559 209715200 99.9% examplefile
对压缩文件进行解压缩:
- #gzip -d examplefile.gz
以递归方式压缩全部文件与目录:
- # gzip -r examplefile
这里不建议大家使用以上工具,否则会给数据恢复带来阻碍。
3.lzma文件压缩
Lzma是一款与zip及tar类似的压缩工具,但其执行速度可与bzip比肩,且内置于全部Linux发行版当中。
要创建一个归档文件,使用以下命令:
- # lzma -c --stdoutexamplefile>examplefile.lzma
提取数据:
- # lzma -d --stdoutexamplefile.lzma>examplefile
虽然lzma是一款强大的工具,但其在Linux用户中的人气并不高。
4.xz文件压缩
XZ属于lzma的继承者,它不仅能够压缩单一文件,也可以利用一条命令压缩多个文件。这款工具于2009年面世,因此对于陈旧Linux版本的支持效果可能不好。但其已经登陆全部***Linux操作系统,且能够自动为压缩文件添加.xz扩展名。
示例:
压缩文件:
- # xzexamplefile
解压文件:
- # xz -d examplefile.xz
5.bzip2文件压缩
Bzip2工具的执行速度远超gzip,其能够更为紧凑地压缩文件与文件夹。不过,它在压缩过程中需要使用更多内存,要降低内存占用,须添加-s选项。
示例:
- # bzip2examplefile
添加-s标记:
- # bzip2 -s examplefile
解压.bz2压缩文件:
- # bzip2 -d examplefile.bz2
或者:
- # bunzip2 examplefile.bz2
使用-v选项实现冗余:
- # bzip2 -v examplefile
- examplefile: 1184831.638:1, 0.000 bits/byte, 100.00% saved, 209715200 in, 177 out.
6.pax文件压缩
Pax是一款知名度较低的Linux压缩工具,其执行速度很快且不仅仅是一款压缩工具,同时亦能实现归档文件的远程复制。Pax在Ubuntu与Mint Linux中并未默认安装。
安装软件包:
- # apt-get install pax
示例:
- # pax -wf examplefile.tar examplefile
w 选项用于写入归档,f代表文件。
使用-z选项将文件压缩为gzip,否则默认为bzip格式:
- # pax -wf examplefile.tar.gz examplefile
列出归档内容:
- # pax -f examplefile.tar
提取归档内容:
- # pax -r <examplefile.tar
7.Peazip文件压缩器
Peazip是一款跨平台压缩工具,其基于7zip、p7zip、freearch等开源工具,能够支持180多种文件格式——大家可以将其作为理想的WinRar替代方案。
安装:
下载软件包并安装:
- # wget sourceforge.net/projects/peazip/files/5.3.1/peazip_5.3.1.LINUX.Qt-2_i386.deb
安装软件包:
- # dpkg -i peazip_5.3.1.LINUX.Qt-2_i386.deb
8.7zip文件压缩器
7Zip文件压缩器是一款开源工具,最初面向微软Windows开发,支持多种文件压缩格式且拥有出色的文件压缩比率,且可通过单一命令压缩多个文件。
安装:
- # apt-get install p7zip-full p7zip-rar
示例:
- # 7z a examplefile.7z examplefile
提取文件:
- # 7z e examplefile.7z
9.shar文件压缩
Shar是一款命令行工具,可用于压缩测试文件,其被宝岛为“shell归档”工具。大家可以利用这款工具轻松实现shell脚本归档。
安装:
- # apt-get install sharutils
示例:
压缩文件:
- # sharexamplefile>examplefile.shar
解压文件:
- # unsharexamplefile.shar
10.cpio文件压缩
它可用于复制输入与输出结果,即逐行读取输入文件列表并输出归档文件。这是一款经典工具,内置于各Linux发行版当中。
示例:
- # cd /tmp
- ls | cpio -ov>/home/username/backup.cpio
解压归档文件:
- # cpio -idv<backup.cpio
11.ar
作为rar的前身,它仍然存在于Debian及各衍生版本当中。ar易于使用,但人气并不高。
示例:
创建归档:
- # arcvsrexamplefile.aexamplefile
解压归档:
- # ar -xv examplefile.a
12.ISO
ISO可创建虚拟磁盘镜像或.iso光盘镜像,并将其烧录至新磁盘或者其他介质当中。这是一款实用工具,可帮助Linux管理员将服务器软件备份至光盘以备今后使用。
示例:
- # dd if=/media/dvd of=/home/username/filename.iso
13.kgb
Kgb是一款知名度不高但却非常出色的归档工具,能够以极高的压缩比率将多个文件转换为归档。它支持全部常见文件归档格式,包括zip、gzip、7zip以及rar。
安装:
- # apt-get install kgb
示例:
- # kgbexamplefile.kgbexamplefile
提取软件包:
- # kgb x examplefile.kgb
14.Zpac
Zpac能够处理大型文件,它诞生于2010年6月15号,拥有出色的数据压缩比率且基于PAQ上下文混合算法。
安装:
- # apt-get install zpac
示例:
- # zpaq c examplefile.tar examplefile
15.File Roller
File roller是一款配备GUI的Linux归档管理器,能够创建或修改归档文件、显示归档内容且支持几乎全部文件格式,包括.iso、.lsa、7zip、gzip、zip以及zz等等,且内置于Mint与Ubuntu发行版当中。
总结
压缩工具的性能根据具体文件且立足系统的不同而有所区别,因此大家应当多准备几款选项以备不时之需。虽然目前可供选择的压缩工具可谓琳琅满目,但我们无疑应该关注那些经过时间考验的标准化选项。
原文标题:Top 15 file compression utilities in Linux,作者:Rajneesh Upadhyay
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】