24.gzip、unzip命令详解

 

 

gzip命令


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


注意:压缩完成后会删除原文件
语法:

gzip [选项] 压缩(解压缩)的文件名

 



各选项的含义:

-c 将输出写到标准输出上,并保留原有文件。

-d 将压缩文件解压。

-l 对每个压缩文件,显示下列字段:压缩文件的大小,未压缩文件的大小,压缩比,未压缩文件的名字

-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。

-t 测试,检查压缩文件是否完整。

-v 对每一个压缩和解压的文件,显示文件名和压缩比。

-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。

 



假设一个目录/home下有文件mm.txt、sort.txt、xx.com。

例1:把/home目录下的每个文件压缩成.gz文件。

$ cd /home

$ gzip *

$ ls

m.txt.gz sort.txt.gz xx.com.gz

 



例2:把例1中每个压缩的文件解压,并列出详细的信息。

$ gzip -dv *

mm.txt.gz 43.1%-----replaced with mm.txt

sort.txt.gz 43.1%-----replaced with sort.txt

xx.com.gz 43.1%-----replaced with xx.com

$ ls

mm.txt sort.txt xx.com

 



例3:详细显示例1中每个压缩的文件的信息,并不解压。

$ gzip -l *

comcodessed uncompr. ratio uncomcodessed_name

277 445 43.1% mm.txt

278 445 43.1% sort.txt

277 445 43.1% xx.com

$ ls

mm.txt.gz sort.txt.gz xx.com.gz

 



例4:压缩一个tar备份文件,如usr.tar,此时压缩文件的扩展名为.tar.gz

$ gzip usr.tar

$ ls

usr.tar.gz

:gzip -d *.gz

 

gunzip命令

 

Gunzip是一个用于解压缩Gzip文件的命令行工具,Gzip是最流行的压缩算法之一,它可以减小文件的大小并保留原始文件模式、所有权和时间戳。按照惯例,使用Gzip压缩的文件将被赋予.gz或.z扩展名。在本文中,我们将解释如何使用gunzip命令。

注意:解压完成后会删除原文件

 

用gunzip解压缩文件

gunzip命令的一般语法如下:

gunzip [OPTION]... [FILE]...

在大多数Linux发行版上,例如Ubuntu、CentOS和Debian,gunzip是gzip -d命令的bash脚本包装器。

所有gzip命令行选项都适用于gunzip。

要使用gunzip解压缩.gz文件,请将压缩文件名作为参数传递:

$ gunzip filename.gz

该命令将压缩文件恢复为其原始名称、所有者、模式和时间戳。

默认情况下,一旦解压缩,gunzip将删除压缩文件,使用-k选项保留文件:

$ gunzip -k filename.gz

要在终端上写入输出,请使用-c选项,这允许你保留压缩文件并可选地将其解压缩到另一个位置:

$ gunzip -c filename.gz > /directory/path/filename

gunzip命令还接受多个文件作为参数:

$ gunzip file1.gz file2.gz file3.gz

要递归解压缩给定目录中的所有文件,请使用-r选项:

$ gunzip -r directory

 

 

列出压缩文件内容

与-l选项一起使用时,gunzip显示有关给定压缩文件的信息:

$ gunzip -l filename.gz

输出将包括未压缩的文件名,压缩和未压缩的大小以及压缩率:

 

 

要获得更详细的输出,请使用-v选项:

$ gunzip -lv filename

会输出如下信息:

 

 

 

zip命令

 

Linux zip 命令用于压缩文件。

zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip。

参数:

-A:调整可执行的自动解压缩文件;
-b<工作目录>:指定暂时存放文件的目录;
-c:替每个被压缩的文件加上注释;
-d:从压缩文件内删除指定的文件;
-D:压缩文件内不建立目录名称;
-f:此参数的效果和指定“-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中;
-F:尝试修复已损坏的压缩文件;
-g:将文件压缩后附加在已有的压缩文件之后,而非另行建立新的压缩文件;
-h:在线帮助;
-i<范本样式>:只压缩符合条件的文件;
-j:只保存文件名称及其内容,而不存放任何目录名称;
-J:删除压缩文件前面不必要的数据;
-k:使用MS-DOS兼容格式的文件名称;
-l:压缩文件时,把LF字符置换成LF+CR字符;
-ll:压缩文件时,把LF+cp字符置换成LF字符;
-L:显示版权信息;
-m:将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中;
-n<字尾字符串>:不压缩具有特定字尾字符串的文件;
-o:以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同;
-q:不显示指令执行过程;
-r:递归处理,将指定目录下的所有文件和子目录一并处理;
-S:包含系统和隐藏文件;
-t<日期时间>:把压缩文件的日期设成指定的日期;
-T:检查备份文件内的每个文件是否正确无误;
-u:更换较新的文件到压缩文件内;
-v:显示指令执行过程或显示版本信息;
-V:保存VMS操作系统的文件属性;
-w:在文件名称里假如版本编号,本参数仅在VMS操作系统下有效;
-x<范本样式>:压缩时排除符合条件的文件;
-X:不保存额外的文件属性;
-y:直接保存符号连接,而非该链接所指向的文件,本参数仅在UNIX之类的系统下有效;
-z:替压缩文件加上注释;
-$:保存第一个被压缩文件所在磁盘的卷册名称;
-<压缩效率>:压缩效率是一个介于1~9的数值。

 

用法

1.将/home/data 这个目录下的所有文件打包压缩为当前目录下的data.zip

zip -q -r data.zip /home/data

 

2.如果现在在/home 这个目录下,则如下

zip -q -r data.zip data

 

3.如果在/home/data 这个目录下,则如下

zip -q -r data.zip *

 

以上三种效果一样。

 

 

 

unzip命令

 

压缩/解压缩操作后,源文件仍然保留
用MS Windows下的压缩软件winzip压缩的文件如何在Linux系统下展开呢?可以用unzip命令,该命令用于解扩展名为.zip的压缩文件。

语法:

unzip [选项] 压缩文件名.zip

 


各选项的含义分别为:

-x 文件列表 解压缩文件,但不包括指定的file文件。

-v 查看压缩文件目录,但不解压。

-t 测试文件有无损坏,但不解压。

-d 目录 把压缩文件解到指定目录下。

-z 只显示压缩文件的注解。

-n 不覆盖已经存在的文件。

-o 覆盖已存在的文件且不要求用户确认。

-j 不重建文档的目录结构,把所有文件解压到同一目录下

 



例1:将压缩文件text.zip在当前目录下解压缩。

$ unzip text.zip

 



例2:将压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。

$ unzip -n text.zip -d /tmp

 



例3:查看压缩文件目录,但不解压。

$ unzip -v text.zip

 

 

 

 

 


zgrep命令

 


这个命令的功能是在压缩文件中寻找匹配的正则表达式,用法和grep命令一样,只不过操作的对象是压缩文件。如果用户想看看在某个压缩文件中有没有某一句话,便可用zgrep命令。

 

参考:https://www.cnblogs.com/chyong168/archive/2012/03/23/2413628.html

https://www.cnblogs.com/black-humor/p/8962499.html

https://ywnz.com/linuxml/5902.html

 

posted @ 2020-11-08 22:26  钟桂耀  阅读(1172)  评论(0编辑  收藏  举报