1.命令作用
压缩或解压缩文件(默认情况下,就地压缩文件)(Compress or uncompress FILEs (by default, compress FILES in-place));默认情况下会将多个文件压缩成多个.gz为后缀的压缩文件,且压缩后源文件会被删除。
2.命令语法
Usage: gzip [OPTION]... [FILE]...
3.参数详解
OPTION:
- -c, --stdout,默认写入到标准输出,原始文件保持不变不会被删除;可以使用覆盖重定向或者追加重定向压缩成指定的文件里,追加定向压缩会将文件内容重复追加
- -d, --decompress,解压缩,与gunzip功能相同
- -f, --force,如果解压后的文件已经存在,则不提示是否覆盖,直接强制覆盖输出文件和压缩链接
- -l, --list,列出压缩文件基本信息;包括压缩后大小,未压缩大小,压缩比及源文件名称
- -n, --no-name,压缩文件时,不保存原来的文件名称及时间戳
- -N, --name,压缩文件时,保存原来的文件名称及时间戳(默认行为)
- -q, --quiet,抑制所有警告
- -r, --recursive,对目录进行递归压缩操作,注意不是将整个目录压缩为一个文件,是将目录下所有文件分别进行压缩,-dr可以对应递归解压
- -S, --suffix=SUF,指定压缩后文件名称的后缀为SUF,对应解压时也需要指定该能解压
- -t, --test,测试检测压缩文件的完整
- -v, --verbose,详细模式
- -V, --version,展示版本号
- -1, --fast,压缩更快
- -9, --best,更好的压缩;实质为压缩级别,可设置-1~-9,默认为-6
- --rsyncable,创建适合rsync的归档
4.常用用例
4.1.默认压缩后删除原文件
## gzip压缩默认会在压缩后删除原文件
[root@node2 Desktop]# ll
total 12
-rw-r--r--. 1 root root 56 Mar 9 16:19 file1.txt
-rw-r--r--. 1 root root 56 Mar 9 16:20 file2.txt
-rw-r--r--. 1 root root 56 Mar 9 16:20 file3.txt
[root@node2 Desktop]#
[root@node2 Desktop]# gzip file1.txt
[root@node2 Desktop]# ll
total 12
-rw-r--r--. 1 root root 47 Mar 9 16:19 file1.txt.gz
-rw-r--r--. 1 root root 56 Mar 9 16:20 file2.txt
-rw-r--r--. 1 root root 56 Mar 9 16:20 file3.txt
[root@node2 Desktop]#
## gzip压缩多个文件是分别进行压缩,不是将多个文件压缩成一个文件
[root@node2 Desktop]# ll
total 12
-rw-r--r--. 1 root root 47 Mar 9 16:19 file1.txt.gz
-rw-r--r--. 1 root root 56 Mar 9 16:20 file2.txt
-rw-r--r--. 1 root root 56 Mar 9 16:20 file3.txt
[root@node2 Desktop]#
[root@node2 Desktop]# gzip file2.txt file3.txt
[root@node2 Desktop]#
[root@node2 Desktop]# ll
total 12
-rw-r--r--. 1 root root 47 Mar 9 16:19 file1.txt.gz
-rw-r--r--. 1 root root 47 Mar 9 16:20 file2.txt.gz
-rw-r--r--. 1 root root 47 Mar 9 16:20 file3.txt.gz
[root@node2 Desktop]#
4.2.gzip压缩文件的解压(-d,同gunzip)
[root@node2 Desktop]# ll
total 12
-rw-r--r--. 1 root root 47 Mar 9 16:19 file1.txt.gz
-rw-r--r--. 1 root root 47 Mar 9 16:20 file2.txt.gz
-rw-r--r--. 1 root root 47 Mar 9 16:20 file3.txt.gz
[root@node2 Desktop]# gzip -d *
[root@node2 Desktop]# ll
total 12
-rw-r--r--. 1 root root 56 Mar 9 16:19 file1.txt
-rw-r--r--. 1 root root 56 Mar 9 16:20 file2.txt
-rw-r--r--. 1 root root 56 Mar 9 16:20 file3.txt
[root@node2 Desktop]#
4.3.压缩后不删除原文件(-c)
## gzip压缩不删除原文件,需要使用重定向符号>或者>>配合使用
[root@node2 Desktop]# ll
total 12
-rw-r--r--. 1 root root 56 Mar 9 16:19 file1.txt
-rw-r--r--. 1 root root 56 Mar 9 16:20 file2.txt
-rw-r--r--. 1 root root 56 Mar 9 16:20 file3.txt
[root@node2 Desktop]# gzip -c file1.txt > file1.txt.gz
[root@node2 Desktop]# ll
total 16
-rw-r--r--. 1 root root 56 Mar 9 16:19 file1.txt
-rw-r--r--. 1 root root 47 Mar 9 16:41 file1.txt.gz
-rw-r--r--. 1 root root 56 Mar 9 16:20 file2.txt
-rw-r--r--. 1 root root 56 Mar 9 16:20 file3.txt
[root@node2 Desktop]#
4.4.递归压缩(-r)
## -r 递归压缩是将目录下所有的文件分别压缩,并不是将目录下所有内容压缩成一个文件
## -r 递归压缩对应可以使用-dr 进行递归解压
[root@node2 Desktop]# ll
total 0
drwxr-xr-x. 3 root root 69 Mar 9 16:43 dir1
[root@node2 Desktop]# tree dir1/
dir1/
├── dir2
│ ├── file1.txt
│ ├── file2.txt
│ └── file3.txt
├── file1.txt
├── file2.txt
└── file3.txt
1 directory, 6 files
[root@node2 Desktop]# gzip -r dir1/
[root@node2 Desktop]#
[root@node2 Desktop]# ll
total 0
drwxr-xr-x. 3 root root 78 Mar 9 16:44 dir1
[root@node2 Desktop]# tree dir1/
dir1/
├── dir2
│ ├── file1.txt.gz
│ ├── file2.txt.gz
│ └── file3.txt.gz
├── file1.txt.gz
├── file2.txt.gz
└── file3.txt.gz
1 directory, 6 files
[root@node2 Desktop]#
4.5.自定义压缩后的文件后缀(-S)
## gzip 压缩默认的压缩文件后缀为.gz,可以使用-S 自定义后缀名称
## -S自定义后缀名称解压时,也需要指定其后缀名称才能解压,否则会报错
[root@node2 Desktop]# ll
total 8
-rw-r--r--. 1 root root 56 Mar 9 16:43 file1.txt
-rw-r--r--. 1 root root 56 Mar 9 16:48 file2.txt
[root@node2 Desktop]#
[root@node2 Desktop]# gzip file1.txt
[root@node2 Desktop]# gzip -S .gzip file2.txt
[root@node2 Desktop]#
[root@node2 Desktop]# ll
total 8
-rw-r--r--. 1 root root 47 Mar 9 16:43 file1.txt.gz
-rw-r--r--. 1 root root 47 Mar 9 16:48 file2.txt.gzip
[root@node2 Desktop]#