Linux gzip命令

更多资料下载、嵌入式视频教程,加群:398294860,视频教程:www.wanglitao.taobao.com

以xx.gz结尾的压缩文件,一般是通过gzip这个程序压缩的,解压的时候,一般也要使用gzip解压。gzip相比tar命令,有更好的压缩率,对文本文件有60%~70%的压缩率,减少文件体积大小,不仅可以减少磁盘的存储空间,而且更方便通过网络传输,减少传输的时间。

# gzip [参数] [文件或目录]

gzip命令常用的参数如下:

参数 参数说明
-a 使用ASCII文字模式
-c 把压缩后的文件输出到标准输出设备,不去更动原始文件
-d 解开压缩文件
-f 强行压缩文件
-l 列出压缩文件的相关信息
-r 递归处理,将指定目录下的所有文件及子目录一并处理
-q 不显示警告信息

使用示例:

将某个指定目录(如test目录)下的所有文件压缩为.gz文件:

# ls
hello.c  readme  world.c
# gzip *
# ls
hello.c.gz  readme.gz  world.c.gz

查看每一个压缩文件的相关信息:

# gzip -l *
         compressed        uncompressed  ratio uncompressed_name
                189                 338  51.8% hello.c
                 84                  93  36.6% readme
                303                 602  54.0% world.c
                576                1033  46.8% (totals)

将上述每一个压缩文件进行解压:

# ls
hello.c.gz  readme.gz  world.c.gz

# gzip -dv *
hello.c.gz:     51.8% -- replaced with hello.c
readme.gz:     36.6% -- replaced with readme
world.c.gz:     54.0% -- replaced with world.c

# ls
hello.c  readme  world.c

若一个目录下,既有源文件,也有子目录,想递归压缩子目录下所有的文件,可以使用:gzip -r 命令

# tree
.
├── hello.c
├── readme
├── sub-dir
│   ├── main.c
│   └── sub.c
└── world.c

如果我们直接使用gzip压缩,只能压缩当前目录下的源文件:

# gzip *
gzip: sub-dir is a directory -- ignored

roo# tree
.
├── hello.c.gz
├── readme.gz
├── sub-dir
│   ├── main.c
│   └── sub.c
└── world.c.gz

如果使用gzip -r 递归压缩,会将当前目录下所有的文件都压缩(包括子目录中的文件)

# gzip -r *

# tree
.
├── hello.c.gz
├── readme.gz
├── sub-dir
│   ├── main.c.gz
│   └── sub.c.gz
└── world.c.gz

1 directory, 5 files

同样,压缩的时候,也要加上 -r 参数,否则只解压当前目录下的压缩文件,不会解压子目录下的压缩文件。

# tree
.
├── hello.c.gz
├── readme.gz
├── sub-dir
│   ├── main.c.gz
│   └── sub.c.gz
└── world.c.gz
1 directory, 5 files


# gzip -dv -r *
hello.c.gz:     51.8% -- replaced with hello.c
readme.gz:     36.6% -- replaced with readme
sub-dir/sub.c.gz:      0.0% -- replaced with sub-dir/sub.c
sub-dir/main.c.gz:      0.0% -- replaced with sub-dir/main.c
world.c.gz:     54.0% -- replaced with world.c


# tree
.
├── hello.c
├── readme
├── sub-dir
│   ├── main.c
│   └── sub.c
└── world.c
1 directory, 5 files

gzip命令更多的参数信息

  • -h 或 —help :在线帮助
  • -L 或 —license :显示版本和版权信息
  • -n 或 —no-name :压缩文件时,不保存原来的文件名及时间戳
  • -N 或 —name :压缩文件时,保留原来的文件名和时间戳
  • -t 或 —test :测试压缩文件是否正确无误
  • -v or —verbose :显示命令执行过程
  • -V 或 —version :显示版本信息
  • -num :用指定的数字调整压缩速度
    • -1 或 —fast :表示最快压缩方法(低压缩比ratio)
    • -9 或—best :表示最慢压缩方法(高压缩比ratio)
    • -6 :默认的压缩方法
《Linux三剑客》视频教程,从零开始快速掌握Linux开发常用的工具:Git、Makefile、vim、autotools、debug,免费赠送C语言视频教程,C语言项目实战:学生成绩管理系统。详情请点击淘宝链接:Linux三剑客