Linux系统下常用的压缩工具

2022年9月26日 | 分类: 【技术】

Linux下的压缩工具有很多,下面列出Linux下常用的压缩工具及其产生文件的后缀:
gzip/gunzip,后缀名为.gz;
compress/uncompress,后缀名为.Z;
zip/unzip,后缀名为.zip;
bzip2/bunzip2,后缀名为.bz2;
lha,后缀名为.lzh。

Linux下压缩工具中最常用的包括gzip、zip和bzip2三种,下面分别讲述这三种最常用的压缩工具。

gzip压缩工具

对文件进行压缩的目的有两个:一是可以减少存储空间;二是通过网络传输文件时,可以减少传输的网络开销。gzip是Linux最常用的软件压缩工具,在Linux终端输入man gzip命令降显示gzip的帮助文档。该命令的使用形式为:gzip [选项] 压缩或解压缩的文件名。

下面给出使用gzip命令压缩文件的例子,压缩当前目录下的所有文件,并且显示压缩比,显示已经替代原来的文件:#gzip -v *,其中-v参数表明显示压缩比和文件名。需要注意的是,gzip只能对单个文件压缩,不能像Winzip和Winrar一样,可以将多个文件压缩成一个.zip文件或.rar文件。正因为如此,Linux才提供了tar命令,用于将若干文件或文件夹打包成一个文件,然后再压缩成一个.gz文件。接着是解压缩文件的例子,对当前目录下所有压缩的文件解压缩,并列出详细的信息:#gzip -dv *。

另外,显示压缩文件的内容信息:可以用带-l参数的gzip命令显示gz文件的内容。这只是显示文件内容,并不实际解压缩文件:# gzip -l *。

此外,在tar命令中也可以直接嵌入gzip命令,从而直接将若干文件或文件夹处理成一个.tar.gz文件。在这个处理过程中,系统先将若干文件或文件夹打包成.tar,然后将生成的.tar文件压缩成.tar.gz文件。例如将当前目录下所有文件打包并压缩成gong.tar.gz并显示处理进度:# tar cvfz gong.tar.gz ./*。

zip/unzip命令

zip程序位于/usr/bin目录中,可将文件压缩成.zip文件以节省硬盘空间,而当需要的时候又可将压缩文件解开。unzip命令用于将压缩文件解压。zip命令的使用形式为: zip [选项] 压缩后文件名 待压缩文件或文件夹,其中:参数选项表明要完成的操作类型,压缩后的文件名是某个合法的文件名,其后缀为zip,待压缩文件或文件夹指明须要进行压缩的文件或文件夹,可以是多个文件或文件夹。

下面给出使用该命令压缩文件或文件夹的例子。例如将当前目录下的所有文件和文件夹全部压缩成gong.zip压缩文件,-r表示递归压缩子目录下所有文件:# zip -r gong.zip ./* 。用带-v参数选项可以查看zip文件的内容,这点类似于带t参数选项的tar命令。只不过前者用于显示压缩的zip文件的内容,后者用于显示tar文件的内容。与带t参数选项的tar命令类似,带v参数选项的zip命令实际上并不解压缩文件,例如查看gong.zip文件的内容:# zip -v gong.zip。

用带-d参数选项的zip命令可以从zip压缩文件中删除某个文件,而使用带-m的zip命令可以向zip压缩文件添加某个文件。例如删除压缩文件中smart.txt文件:# zip -d gong.zip smart.txt;向压缩文件中gong.zip中添加rpm_info.txt文件:# zip -m gong.zip ./rpm_info.txt。

此外,unzip命令用于扩展名为zip的压缩文件的解压缩,同时,Windows下用压缩软件Winzip压缩的文件在Linux系统下也可以用unzip命令解压缩。unzip命令的语法如下:unzip [参数选项] 压缩文件名.zip。unzip命令的常用用法有:# unzip gong.zip(将gong.zip解压缩到当前目录);#unzip -n text.zip -d /tmp(解压缩当前目录下的text.zip压缩文件,-n参数选项指明不覆盖原有文件,-d /tmp指明将文件解压缩到/tmp目录下);#unzip -v text.zip(显示当前目录下text.zip压缩文件内容)。

bzip2命令

bzip2是一个无损压缩软件,具有高质量的数据压缩能力。它能将文件压缩到原来的10%到15%,而且压缩速度和解压缩速度都非常高,因此在Linux下得到广泛使用。bzip2从命令行读入文件名和参数,每个文件都被名为“原始文件名.bz2”的压缩文件替换。每个压缩文件具有与原文件相同的修改时间和权限,如果可能的话,还具有相同的属主,因此在解压缩时这些特性将正确地恢复。

具体操作如下,例如,用bzip2命令压缩当前目录下所有文件,用bunzip2 -z * 将获得相同的效果:#bzip2 *。再例如用bunzip2命令解压缩当前目录下所有文件,其中有一个文件free.txt不是以bz2为后缀:# bunzip2。

eoiioe
linux下解压命令大全

.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName

.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName

.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
———————————————
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知

.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
———————————————
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z

解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
———————————————
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
———————————————
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
———————————————
.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName
———————————————
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
———————————————
.deb
解包:ar p FileName.deb data.tar.gz | tar zxf –
———————————————
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea
解压:sEx x FileName.*
压缩:sEx a FileName.* FileName

sEx只是调用相关程序,本身并无压缩、解压功能,请注意!

gzip 命令
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。

语法:gzip [选项] 压缩(解压缩)的文件名该命令的各选项含义如下:

-c 将输出写到标准输出上,并保留原有文件。-d 将压缩文件解压。-l 对每个压缩文件,显示下列字段: 压缩文件的大小;未压缩文件的大小;压缩比;未压缩文件的名字-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。-t 测试,检查压缩文件是否完整。-v 对每一个压缩和解压的文件,显示文件名和压缩比。-num 用指定的数字 num 调整压缩的速度,-1 或 –fast 表示最快压缩方法(低压缩比),-9 或–best表示最慢压缩方法(高压缩比)。系统缺省值为 6。指令实例:

gzip *% 把当前目录下的每个文件压缩成 .gz 文件。gzip -dv *% 把当前目录下每个压缩的文件解压,并列出详细的信息。gzip -l *% 详细显示例1中每个压缩的文件的信息,并不解压。gzip usr.tar% 压缩 tar 备份文件 usr.tar,此时压缩文件的扩展名为.tar.gz。