8.7 用gzip归档和压缩文件

gzip

在某些方面,gzip的使用要比zip更简单些。使用zip,需要指定新创建的zip文件的名称,否则zip就不能运行。而使用gzip时,可以只输入命令和需要压缩的文件名。

  1. $ ls -l
  2. -rw-r--r-- scott scott 508925 paradise_lost.txt
  3. $ gzip paradise_lost.txt
  4. $ ls -l
  5. -rw-r--r-- scott scott 224425 paradise_lost.txt.gz

不过,zipgzip之间还是有很大的区别。使用zip压缩文件时,它会保留原始文件,这样最终得到的是原始文件和新创建的压缩文件;而使用gzip压缩文件时,最终得到的只是新创建的压缩文件,原始文件不存在了。

如果想让gzip保留原始文件,则需要使用-c(或--stdout--to-stdout)选项,它可以将gzip的结果输出到shell,但还需要将输出重定向到另一个文件。如果使用-c选项时,忘记重定向输出,那么将得到如下这些无意义的内容:

8.7 用gzip归档和压缩文件 - 图1

很糟糕吧。相反,如果将输出重定向到一个文件呢?

  1. $ ls -l
  2. -rw-r--r-- 1 scott scott 508925 paradise_lost.txt
  3. $ gzip -c paradise_lost.txt > paradise_lost.txt.gz
  4. $ ls -l
  5. -rw-r--r-- 1 scott scott 497K paradise_lost.txt
  6. -rw-r--r-- 1 scott scott 220K paradise_lost.txt.gz

这样就好多了!现在既有原始文件,也有zip压缩的文件了。

提示 如果你不小心使用了-c选项,但又没有指定输出文件,按几次Ctrl+C组合键,就可以终止gzip的执行。