gzip命令
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
注意:压缩完成后会删除原文件
语法:
各选项的含义:
-c 将输出写到标准输出上,并保留原有文件。
-d 将压缩文件解压。
-l 对每个压缩文件,显示下列字段:压缩文件的大小,未压缩文件的大小,压缩比,未压缩文件的名字-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试,检查压缩文件是否完整。
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。
假设一个目录/home下有文件、、。
例1:把/home目录下的每个文件压缩成.gz文件。
$ cd /home
$ gzip *
$ ls
m.txt.gz .gz .gz
例2:把例1中每个压缩的文件解压,并列出详细的信息。
$ gzip -dv *
.gz 43.1%-----replaced with
.gz 43.1%-----replaced with
.gz 43.1%-----replaced with
$ ls
例3:详细显示例1中每个压缩的文件的信息,并不解压。
$ gzip -l *
comcodessed uncompr. ratio uncomcodessed_name
27744543.1%
27844543.1%
27744543.1%
$ ls
.gz .gz .gz
例4:压缩一个tar备份文件,如,此时压缩文件的扩展名为.
$ gzip
$ ls
.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 这个目录下,则如下
3.如果在/home/data 这个目录下,则如下
以上三种效果一样。
unzip命令
压缩/解压缩操作后,源文件仍然保留
用MS Windows下的压缩软件winzip压缩的文件如何在Linux系统下展开呢?可以用unzip命令,该命令用于解扩展名为.zip的压缩文件。
语法:
各选项的含义分别为:
-x 文件列表 解压缩文件,但不包括指定的file文件。
-v 查看压缩文件目录,但不解压。
-t 测试文件有无损坏,但不解压。
-d 目录 把压缩文件解到指定目录下。
-z 只显示压缩文件的注解。
-n 不覆盖已经存在的文件。
-o 覆盖已存在的文件且不要求用户确认。
-j 不重建文档的目录结构,把所有文件解压到同一目录下
例1:将压缩文件在当前目录下解压缩。
例2:将压缩文件在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
$ unzip -n -d /tmp
例3:查看压缩文件目录,但不解压。
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