gzip命令介绍

gzip是在Linux下使用最广的压缩命令了,它可以解开compress、zip与gzip软件压缩的文件。

命令格式

gzip [参数与选项] 源文件名
zcat 文件名.gz 查看压缩文件内容
gunzip 解压文件名
参数:

  1. -c:将压缩的数据输出到屏幕上,可以通过数据流重定向来处理,同时保留源文件;
  2. -d:解压缩文件的参数;
  3. -r:递归,压缩源目录下的文件参数;
  4. -v:可以显示源文件的压缩比;
  5. -#:#为数字的意思,代表压缩等级,-1最快,-9最慢,以gzip的方式压缩;
  6. -n:或–no-name  ,压缩文件时,不保存原来的文件名称及时间戳记
  7. -N:或–name,压缩文件时,保存原来的文件名称及时间戳记
  8. -k:保留源文件

实例

【例一】基本压缩

[root@scoffer ~]# echo my name is a scoffer >>index.html
 [root@scoffer ~]# ls
 Downloads index.html
 [root@scoffer ~]# gzip index.html
 [root@scoffer ~]# ls
 Downloads index.html.gz
 当你采用gzip方式压缩时,会在原有的文件上被压缩成为.gz的后缀的文件,源文件会不存在了,在这一点上与windows系统不同,使用gzip的文件在windows系统上,可以被软件解压。
 【例二】保留源文件压缩
 [root@scoffer ~]# echo my name is a scoffer >scoffer
 [root@scoffer ~]# gzip -c scoffer >scoffer.gz
 #单纯的-c是将数据输出到屏幕上的,但是我用的是重定向将scoffer的数据通过重定向的方式,输出到scoffer.gz上
 [root@scoffer ~]# ls
 scoffer.gz scoffer
 [root@scoffer ~]# zcat scoffer.gz
 my name is a scoffer
 [root@scoffer /]# gzip -dc scoffer.gz >>scoffer
 [root@scoffer /]# ls
 scoffer
 【例三】解压缩
 [root@scoffer ~]# gzip -d scoffer.gz
 [root@scoffer ~]# ls
 scoffer scoffer.gz
 #解压之后系统默认的把扩展名取消,还是scoffer
 【例四】压缩文件查找关键词
 [root@scoffer /]# ll /etc/ >>scoffer
 [root@scoffer /]# gzip -c scoffer >>scoffer.gz
 [root@scoffer /]# zgrep -n ‘hostname’ scoffer.gz
 88:-rw-r–r--. 1 root root 11 Jan 10 21:57 hostname


#通过zgrep把hostname信息查找出来
【例五】仅是压缩,不打包
一些人用户来问我,为何在文件压缩了之后,进行重名名操作,为何压缩之后是重名名的文件名,我说:你们向百度搜索压缩和打包的概念吧!压缩是把大的文件压缩成较小的文件,打包是把一群文件或目录打包成一个文件或目录,解压是把较小的文件恢复成原本 的大型文件。

[root@scoffer /]# mv scoffer.gz 1.gz
 [root@scoffer /]# ls
 1.gz
 [root@scoffer /]# gunzip 1.gz
 [root@scoffer /]# ls
 1
 #因为把小文件是1.gz恢复之后,解压完.gz扩展名消失,那肯定是1呀
 但是加上-n参数不一样了
 [root@scoffer /]# gzip -vN scoffer
 scoffer: 80.5% – replaced with scoffer.gz
 #以压缩比的形式显示,压缩时保留时间及文件名
 [root@scoffer /]# mv scoffer.gz 2.gz
 [root@scoffer /]# gzip -dN 2.gz
 #解压时保留时间及文件名,故恢复到scoffer
 [root@scoffer /]# ls
 scoffer


【例六】单参数保留源文件

[root@scoffer ~]# ls
 scoffer
 [root@scoffer ~]# gzip -kv scoffer
 scoffer: 3.1% – created scoffer.gz
 [root@scoffer ~]# ls
 scoffer scoffer.gz


【例七】压缩源目录下的文件,不能压缩目录

[root@scoffer ~]# mkdir -p 1/2
 [root@scoffer ~]# echo my name is a scoffer >>1/2/3
 [root@scoffer ~]# mkdir 1/1.1
 [root@scoffer ~]# echo my name is a scoffer >>1/1.1/2.1
 [root@scoffer ~]# gzip -vr 1
 1/2/3: -9.5% – replaced with 1/2/3.gz
 1/1.1/2.1: -9.5% – replaced with 1/1.1/2.1.gz
 [root@scoffer ~]# ls 1/1.1/
 2.1.gz
 [root@scoffer ~]# ls 1/2/


3.gz
#目录没有压缩,只有各子目录下的文件进行压缩,如果压缩目录需要用tar命令,下篇再讲!欢迎各位大佬指出不足!