侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux gzip命令教程:如何压缩和解压缩文件(附实例和用法详解)

Linux gzip命令介绍

gzip是一个用于压缩文件的命令,它使用的是GNU zip算法,可以有效地减少文件的大小。gzip压缩的文件通常以.gz或.z为后缀,例如file.txt.gz。gzip不仅可以压缩文件,还可以保留文件的原始时间戳、模式、所有权和名称。gzip也可以用于解压缩文件,只需加上-d选项即可。gzip是Linux系统中最常用的压缩工具之一,它可以与tar命令结合,创建一个压缩的归档文件,以.tar.gz或.tgz为后缀,例如file.tar.gz。gzip通常用于压缩文本文件、tar归档文件和网页文件,不建议用于压缩图像、音频、PDF文档等已经压缩过的二进制文件。

Linux gzip命令适用的Linux版本

gzip命令在大多数Linux发行版中都是默认安装的,你可以使用which命令来检查是否存在gzip命令:

[linux@bashcommandnotfound.cn ~]$ which gzip
/usr/bin/gzip

如果没有安装gzip命令,你可以使用你的发行版的包管理器来安装它。例如,在基于Debian的系统中,你可以使用apt命令:

[linux@bashcommandnotfound.cn ~]$ sudo apt install gzip

在基于Red Hat的系统中,你可以使用yum或dnf命令:

[linux@bashcommandnotfound.cn ~]$ sudo yum install gzip

或者

[linux@bashcommandnotfound.cn ~]$ sudo dnf install gzip

Linux gzip命令的基本语法

gzip命令的一般语法如下:

gzip [选项]... [文件]...

gzip命令只能压缩单个文件,如果给出多个文件作为参数,它会为每个文件创建一个压缩文件。如果没有给出文件参数,gzip会从标准输入读取数据,并将压缩后的数据写入标准输出。

Linux gzip命令的常用选项说明

gzip命令有很多选项,可以改变它的默认行为。以下是一些常用的选项:

选项说明
-c, --stdout, --to-stdout将压缩后的数据写入标准输出,不删除原始文件
-d, --decompress, --uncompress解压缩文件,删除压缩文件
-f, --force强制压缩文件,即使文件已经存在或不可压缩
-h, --help显示帮助信息
-k, --keep保留原始文件,不删除
-l, --list列出压缩文件的信息,包括压缩比、未压缩大小、压缩大小、文件名等
-n, --no-name不保存原始文件的名称和时间戳
-N, --name保存原始文件的名称和时间戳(默认)
-q, --quiet禁止显示警告和错误信息
-r, --recursive递归地压缩目录中的所有文件
-t, --test测试压缩文件的完整性
-v, --verbose显示压缩过程中的信息,包括压缩比和文件名
-V, --version显示gzip的版本信息
-1, --fast使用最快的压缩方法,压缩比最低
-9, --best使用最慢的压缩方法,压缩比最高

Linux gzip命令的实例

以下是一些使用gzip命令的实例,你可以根据自己的需要进行尝试和修改。

压缩一个文件

要压缩一个文件,只需在gzip命令后面加上文件名即可:

[linux@bashcommandnotfound.cn ~]$ gzip file.txt

这会创建一个名为file.txt.gz的压缩文件,并删除原始文件file.txt。

压缩多个文件

要压缩多个文件,可以在gzip命令后面加上多个文件名,用空格分隔:

[linux@bashcommandnotfound.cn ~]$ gzip file1.txt file2.txt file3.txt

这会为每个文件创建一个压缩文件,例如file1.txt.gz,file2.txt.gz,file3.txt.gz,并删除原始文件。

压缩一个目录

要压缩一个目录,可以使用-r选项,让gzip递归地压缩目录中的所有文件:

[linux@bashcommandnotfound.cn ~]$ gzip -r dir

这会压缩dir目录中的所有文件,并删除原始文件。注意,这不会创建一个名为dir.gz的压缩文件,而是在dir目录中创建多个压缩文件。如果你想创建一个压缩的归档文件,你可以使用tar命令,然后用gzip压缩它:

[linux@bashcommandnotfound.cn ~]$ tar cvf dir.tar dir
[linux@bashcommandnotfound.cn ~]$ gzip dir.tar

这会创建一个名为dir.tar.gz的压缩文件,包含dir目录中的所有文件。你也可以使用tar命令的-z选项,直接用gzip压缩归档文件:

[linux@bashcommandnotfound.cn ~]$ tar czvf dir.tar.gz dir

解压缩一个文件

要解压缩一个文件,可以使用-d选项,或者使用gunzip命令,它相当于gzip -d:

[linux@bashcommandnotfound.cn ~]$ gzip -d file.txt.gz

或者

[linux@bashcommandnotfound.cn ~]$ gunzip file.txt.gz

这会解压缩file.txt.gz文件,并删除压缩文件。

保留原始文件

默认情况下,gzip会删除原始文件,只保留压缩文件。如果你想保留原始文件,可以使用-k选项:

[linux@bashcommandnotfound.cn ~]$ gzip -k file.txt

这会创建一个名为file.txt.gz的压缩文件,并保留原始文件file.txt。

强制压缩文件

有时候,你可能想压缩一个已经存在的压缩文件,或者一个不可压缩的文件,例如一个图像文件。这时候,gzip命令会拒绝压缩文件,除非你使用-f选项,强制压缩文件:

[linux@bashcommandnotfound.cn ~]$ gzip -f file.txt.gz

这会覆盖原来的压缩文件file.txt.gz,创建一个新的压缩文件。注意,这可能会导致文件变得更大,或者损坏文件。

改变压缩级别

gzip命令允许你指定一个压缩级别,从1到9。-1或--fast表示最快的压缩速度,但是压缩比最低。-9或--best表示最慢的压缩速度,但是压缩比最高。

列出压缩文件的信息

要列出压缩文件的信息,可以使用-l选项,它会显示压缩比、未压缩大小、压缩大小、文件名等信息:

[linux@bashcommandnotfound.cn ~]$ gzip -l file.txt.gz
         compressed        uncompressed  ratio uncompressed_name
               1024                2048  50.0% file.txt

测试压缩文件的完整性

要测试压缩文件的完整性,可以使用-t选项,它会检查压缩文件是否有错误或损坏:

[linux@bashcommandnotfound.cn ~]$ gzip -t file.txt.gz

如果压缩文件没有问题,这个命令不会有任何输出。如果压缩文件有问题,这个命令会显示一个错误信息,例如:

[linux@bashcommandnotfound.cn ~]$ gzip -t file.txt.gz
gzip: file.txt.gz: unexpected end of file

显示压缩过程中的信息

要显示压缩过程中的信息,可以使用-v选项,它会显示压缩比和文件名:

[linux@bashcommandnotfound.cn ~]$ gzip -v file.txt
file.txt:  50.0% -- replaced with file.txt.gz

如果使用-v选项多次,它会显示更多的信息,例如:

[linux@bashcommandnotfound.cn ~]$ gzip -vv file.txt
file.txt:  50.0% -- replaced with file.txt.gz
method: deflate, crc: 12345678, date: Nov 10 10:11 2023

不保存原始文件的名称和时间戳

默认情况下,gzip会保存原始文件的名称和时间戳,这样在解压缩时,可以恢复原始文件的名称和时间戳。如果你不想保存原始文件的名称和时间戳,可以使用-n选项:

[linux@bashcommandnotfound.cn ~]$ gzip -n file.txt

这会创建一个名为file.txt.gz的压缩文件,但是不保存原始文件的名称和时间戳。在解压缩时,压缩文件的名称和时间戳会被用作原始文件的名称和时间戳。

使用快捷键

gzip命令支持一些快捷键,可以在压缩过程中使用,以改变压缩的行为。以下是一些常用的快捷键:

快捷键说明
Ctrl+C中断压缩过程,保留已经压缩的文件
+增加压缩级别,最高为9
-减少压缩级别,最低为1
v增加显示信息的级别,最高为2
q减少显示信息的级别,最低为0

Linux gzip命令的注意事项

使用gzip命令时,需要注意以下几点:

  • gzip命令只能压缩单个文件,不能压缩目录。如果想压缩目录,可以使用tar命令创建一个归档文件,然后用gzip压缩它。
  • gzip命令默认会删除原始文件,只保留压缩文件。如果想保留原始文件,可以使用-k选项。
  • gzip命令不适合压缩已经压缩过的二进制文件,例如图像、音频、PDF文档等,因为这可能会导致文件变得更大,或者损坏文件。
  • gzip命令可以与其他命令结合,使用管道来传输数据,例如:
[linux@bashcommandnotfound.cn ~]$ cat file.txt | gzip > file.txt.gz

这会将file.txt的内容压缩,并写入file.txt.gz文件。

0

评论区