gzip压缩与解压

2023-09-20 08:14:34 浏览数 (2)

引子

gzip是Linux系统中最常用也是高效的压缩压缩命令。早期Linux系统中主要使用compress命令压缩,得到后缀为“.Z”的压缩文件,但是后来gzip被发明出来替代了compress成为主流的压缩命令。gzip有更好的压缩比,而且能够解压“.Z”文件。后来bzip2又被发明出来,且具有比gzip更高的压缩比。不过,个人认为bzip2并不如gzip好用,因为bzip2的压缩比提升并不是很显著,但是压缩用时和CPU占用率比gzip要大很多,所以个人认为得不偿失,毕竟现在时间效率要比空间效率更宝贵。

格式:

gzip [-OPTION] [FILE or DIR]

参数:

-c:将压缩后的文件输出到标准输出。如果不想更改原始的文件,请使用此选项。

-d:解压缩

-t:检查压缩文件有无错误

-v:显示原文件名和压缩比到屏幕

-#:压缩等级,1~9级,-1最快但压缩比最低,-9最慢但压缩比最高,默认为-6

-l: 列出压缩文件的信息,并不解压.

-r:递归压缩,压缩目录下的所有文件和子目录文件

用例:

1. 直接压缩或者解压。这样原文件会被删除。

代码语言:javascript复制
gzip -9 test.txt  #以最高压缩等级压缩生成test.txt.gz,同时删除test.txt
gzip -d test.txt.gz  #解压生成test.txt,同时删除test.txt.gz

2. 如果想压缩或解压,并保留原文件,使用-c

代码语言:javascript复制
gzip -1cv test.txt > test.txt.gz  #以最低压缩等级生成test.txt.gz,同时保留test.txt,并显示压缩信息
gzip -dc test.txt.gz > test.txt   #生成test.txt,同时保留test.txt.gz

3. 查看目录下所有压缩文件的信息

代码语言:javascript复制
gzip -l *.gz

4. gzip经常与tar合用,注意:tar只是打包命令,相当于归档,并不做压缩

代码语言:javascript复制
tar -zcvf dirname.tar.gz dirname   #打包并压缩dirname目录, dirname被保留
tar -zxvf dianame.tar.gz   #解压, dirname.tar.gz被保留

-z: 使用gzip压缩或解压

-c:创建一个归档

-v:显示进程

-f:指定文件名

-x:从归档中提取文件

-j:使用bzip2压缩或解压。所以要生成“.tar.bz2”的命令是:tar -jcvf dirname.tar.bz2 dirname

0 人点赞