gzip命令-压缩或解压文件

686 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、命令详解

1.1【功能说明】

gzip命令用于将一个大的文件通过压缩算法(Lempel-Ziv coding)变成一个小的文件。gzip命令不能直接压缩目录,因此目录需要先用tar包打成一个文件,然后提案人包再调用gzip进行压缩。

1.2【语法格式】

[root@7bfe451a2fe1 ~]# gzip --help
Usage: gzip [OPTION]... [FILE]...
Compress or uncompress FILEs (by default, compress FILES in-place).

1.3【选项说明】

选项与参数

  • -d 解开压缩文件
  • -v 显示指令执行的过程
  • -l 列出压缩文件的内容信息
  • -c 将内容输出到标准输出(屏幕),不改变原始文件,可通过数据流重导向来处理
  • -r 对目录下的所有文件递归进行压缩操作
  • -# 指定压缩率,#为数字,范围为1-9,默认为6,值越大压缩率越高
  • -t 测试,检查压缩文件是否完整

二、使用范例

2.1 把目录下的每个文件都压缩成单独的.gz文件

# 准备数据
mkdir -p /var/www/html
touch /var/www/html/{1..10}.html

# 压缩
cd /var/www/html
ls -l
gzip *.html
ls -l

image-20221217234504586.png

说明

  • 后缀.gz是自动添加的
  • gzip命令的缺点是压缩后源文件不见了,它的特性是压缩、解压都会自动删除源文件

2.2 查看压缩文件的信息

gzip -l *.gz

image-20221217234613662.png

说明:

  • 因为源文件都是空文件,所以压缩率都为0.0%

2.3 解压缩保留源文件

# 准备一个文件
cp /etc/services .
ll -h

# 压缩
gzip -c services > services.gz
ll -h
gzip -l services.gz

# 解压
gzip -dc services.gz > services2
ll -h
# 对比源文件和解压后的文件是有差别
diff services services2

image-20221217235129068.png

三、扩展知识

3.1 压缩保留源文件的另一种方法

上面使用重定向解决了保留源文件的问题,但是使用起来不太方便,gzip套件饮食许多可以 在原地 处理压缩文件的实用程序。zcat、zgrep、zless、zdiff等实用程序的作用分别与cat、grep、less和diff相同,但是它们操作的是压缩文件。

zcat services.gz > services

四、命令总结

  • 2022/12/17 项目上线迫在眉捷,明天继续上班