8.7 用gzip归档和压缩文件
gzip
在某些方面,gzip
的使用要比zip
更简单些。使用zip
,需要指定新创建的zip
文件的名称,否则zip
就不能运行。而使用gzip
时,可以只输入命令和需要压缩的文件名。
$ ls -l
-rw-r--r-- scott scott 508925 paradise_lost.txt
$ gzip paradise_lost.txt
$ ls -l
-rw-r--r-- scott scott 224425 paradise_lost.txt.gz
不过,zip
和gzip
之间还是有很大的区别。使用zip
压缩文件时,它会保留原始文件,这样最终得到的是原始文件和新创建的压缩文件;而使用gzip
压缩文件时,最终得到的只是新创建的压缩文件,原始文件不存在了。
如果想让gzip
保留原始文件,则需要使用-c
(或--stdout
或--to-stdout
)选项,它可以将gzip
的结果输出到shell,但还需要将输出重定向到另一个文件。如果使用-c
选项时,忘记重定向输出,那么将得到如下这些无意义的内容:
很糟糕吧。相反,如果将输出重定向到一个文件呢?
$ ls -l
-rw-r--r-- 1 scott scott 508925 paradise_lost.txt
$ gzip -c paradise_lost.txt > paradise_lost.txt.gz
$ ls -l
-rw-r--r-- 1 scott scott 497K paradise_lost.txt
-rw-r--r-- 1 scott scott 220K paradise_lost.txt.gz
这样就好多了!现在既有原始文件,也有zip压缩的文件了。
提示 如果你不小心使用了
-c
选项,但又没有指定输出文件,按几次Ctrl+C组合键,就可以终止gzip
的执行。