myfreax

Linux gzip命令

Gzip是最流行的压缩算法之一,它允许您减小文件的大小并保持原始文件的模式,所有权和时间戳

6 min read
By myfreax
Linux gzip命令
Linux gzip命令

Gzip是最流行的压缩算法之一,它允许您减小文件的大小并保持原始文件的权限,所有权和时间戳。

Gzip也指.gz文件格式和gzip命令,用于压缩和解压.gz文件。在本教程中,我们将向您展示如何使用gzip命令。

gzip命令语法以及常见选项的解释,在解/压缩文件时保留原始文件,查看压缩进度,压缩一个或者多个文件与目录。

gzip命令

gzip命令的语法形式是gzip [OPTION]... [FILE]...OPTIONgzip命令的选项,是可选参数,[FILE]一个或者多个文件,可选参数。

gzip命令仅压缩单个文件,并为每个指定文件创建一个压缩文件。按照约定,使用gzip命令压缩的文件的名称都应以.gz.z结尾。

如果要将多个文件或目录压缩到一个gz文件,请先创建tar存档文件,然后使用gzip命令压缩.tar文件。按照约定,使用gzip命令压缩的tar存档文件以.tar.gz.tgz结尾。

gzip最常用于压缩文本文件,tar存档和网页。不要使用gzip压缩图像,音频,PDF文档和其他二进制文件,因为它们已经被压缩。Gzip只能压缩普通文件,符号链接将会被忽略。

gzip 命令压缩文件

要压缩单个文件,请运行gzip命令后跟文件名。gzip命令将创建filename.gz文件并删除原始文件filename

如果你需要保留原始文件,可以使用gzip命令的-k选项。例如命令gzip -k filename不会删除文件filename

保留原始文件另一个选项是使用gzip命令的-c选项,-c选项将压缩文件写到标准输出,可以将-c选项的标准输出重定向到文件创建压缩文件gz。

gzip filename
gzip -k filename
gzip -c filename > filename.gz

gzip 命令压缩多个文件

您也可以将多个文件作为参数传递给gzip命令。当传递多个文件给gzip命令时,gzip命令并不会将多个文件存放一个压缩文件中。

正如引言所提到的那样,gzip命令只会压缩一个文件,gzip命令会创建多个gz文件。

例如命令gzip file1 file2 file3将会要压缩文件file1file2file3并创建三个压缩文件file1.gzfile2.gzfile3.gz

gzip file1 file2 file3

gzip 命令压缩目录

gzip命令仅可以压缩单个文件,如果你尝试使用gzip命令压缩目录,gzip命令将会打印消息gzip: ssh-8w1J5Qs9sIIr is a directory -- ignored。

要压缩指定目录的所有文件,请使用gzip命令-r选项。gzip命令将递归遍历所有文件并压缩。

gzip命令压缩目录和压缩多个文件的结果一样,会目录内的每个文件创建一个压缩文件。

gzip -r directory

gzip 命令压缩级别

gzip命令允许您指定1到9的压缩级别。-1--fast表示使用最快的压缩速度,但压缩比最小。

-9--best表示最慢的压缩速度,但压缩率是最大的。默认压缩级别为-6。压缩是一项占用大量CPU的任务,压缩级别越高,花费的时间就越长。

例如命令gzip -9 filename以最大的压缩级别压缩文件filename

gzip -9 filename   

gzip 命令压缩标准输入

gzip命令除了可以压缩文件之外,还可以压缩标准输入。使你一边导出数据一边进行压缩。

要使用gzip命令压缩标准输入并创建.gz文件,可以将另一个命令的标准输出通过管道传递到gzip命令。

例如命令mysqldump database_name | gzip -c > database_name.sql.gzmysqldump命令的标准输出通过管道传递到gzip命令创建MySQL数据库备份

mysqldump database_name | gzip -c > database_name.sql.gz

gzip 命令解压gz文件

gzip命令的-d选项可以解压.gz文件。gzip命令在解压完成后,将会删除原始的压缩文件。如果你需要保留压缩文件,请使用gzip命令的-k选项解压文件。

另一个可用于解压.gz文件的命令是gunzipgunzip命令实质是命令gzip -d的别名。

要使用gunzip命令解压.gz文件,只需将文件名传递给gunzip命令,gunzip默认不会删除原始压缩文件。例如命令gunzip file.gz

要一次解压缩多个文件,请将多个文件名以空格分隔作为参数传递给gzip

如果您使用的是GUI环境,而不是命令行,则可以使用文件管理器。打开或者解压.gz文件,请右键单击要解压缩的文件,然后选择提取

gzip -dk file.gz
gunzip file.gz

gzip -dk file1.gz file2.gz file3.gz

gzip 命令解压目录

gzip命令的-d选项可以解压.gz文件,-r选项可以递归遍历目录所有压缩文件。当两个组合在一起就可以递归解压指定目录压缩文件

例如命令gzip -dr directory将会解压directory目录压缩文件。如果你需要保留压缩文件,请添加-k选项。

gzip -dr directory

gzip 命令查看压缩文件

-l选项一起使用时,gzip显示指定压缩文件的统计信息。输出将包括未压缩的文件名,压缩和未压缩的大小以及压缩率。

要获取更多信息,请组合使用gzip命令的-v选项。例如命令gzip -lv filename

gzip -l filename
gzip -lv filename
method  crc     date  time           compressed        uncompressed  ratio uncompressed_name
defla 00000000 Dec  2 17:29                  26                   0   0.0% file2

结论

使用Gzip,您可以缩小文件的大小。gzip命令允许您压缩和解压文件。gzip命令的更多信息,请参阅Gnu gzip文档页面。如有任何疑问,请在下面发表评论。

Related Articles