gzip/gunzip 指令
gzip/gunzip指令
Linux gzip 命令用于压缩文件。
gzip
是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出.gz
的扩展名。
Linux gunzip 命令用于解压文件。
gunzip
是个使用广泛的解压缩程序,它用于解开被 gzip
压缩过的文件,这些压缩文件预设最后的扩展名为 .gz
。
事实上 gunzip 就是 gzip 的硬链接,因此不论是压缩或解压缩,都可通过 gzip 指令单独完成。
gzip
只能压缩单个文件,无法压缩文件夹。想要压缩文件夹,只能用tar
+ gzip
。因为gzip
不负责打包,tar
负责打包。这就是为什么打包之后再压缩的后缀为tar.gz
gzip
会修改源文件的内容(压缩)和文件名(加上.gz
)的后缀。gzip
压缩的是源文件本身,所以不会增加新文件,比如一个压缩包,
|
|
-
-c
或--stdout
或--to-stdout
:把压缩后的文件输出到标准输出设备,不去更动原始文件。 -
-d
或--decompress
或----uncompress
解开压缩文件。gzip
本身就可以解压缩文件,不需要gunzip
-
-f
或--force
:强行压缩文件。不理会文件名称或硬链接是否存在以及该文件是否为符号链接。 -
-l
或--list
:列出压缩文件的相关信息。 -
-n
或--no-name
:压缩文件时,不保存原来的文件名称及时间戳记。 -
-N
或--name
:压缩文件时,保存原来的文件名称及时间戳记。 -
-q
或--quiet
:不显示警告信息。 -
-r
或--recursive
:递归处理,将指定目录下的所有文件及子目录一并处理。注意,这里不是将文件夹整体压缩,而是递归文件夹里的文件,压缩每个文件,添加.gz
的后缀 -
-S <压缩字尾字符串>
或----suffix <压缩字尾字符串>
:更改压缩字尾字符串。 -
-t
或--test
:测试压缩文件是否正确无误。 -
-<压缩效率>
:压缩效率是一个介于1-9
的数值,预设值为"6",指定愈大的数值,压缩效率就会愈高。 -
--best
:此参数的效果和指定-<压缩效率> 为 “-9” 相同。 -
--fast
:此参数的效果和指定-<压缩效率> 为 “-1” 相同。
简单实践:
gzip source0/*
:压缩
gzip -d source0/*
:解压
注意,gzip
无法处理硬链接的文件
当一个文件有其他硬链接的时候,gzip
不会压缩此文件,因为gzip
会修改文件内容。你可以带上 -f
参数强行压缩,但是那样的话,这个文件的其他硬链接就无法使用了,会看不到文件内容,文件内容为空。如果一个文件有软链接则还是会正常被压缩,只是压缩之后,软链接无法找到其指的文件,因为目标文件的文件名文件内容都变了。
无法直接处理文件夹
需要带上 -r 参数,递归处理。
源文件可以有多个