在 Linux 系统下有很多命令可以用来压缩和解压缩文件,本文主讲最常用的两个压缩文件程序:gzip 及 bzip2,它们非常有用,特别是在备份重要文件和通过网络发送文件的时候就能用上。要注意的是,压缩一个已经压缩过的文件会增加额外的开销,因此你将会得到一个更大一些的文件。所以,请不要压缩已经压缩过的文件。
1.使用 gzip 程序来压缩和解压缩文件 gzip 是一个使用 Lempel-Ziv 编码(LZ77)算法来压缩和解压缩文件的实用工具。 1.1.压缩文件 如果要压缩一个名为 ostechnix.txt 的文件,使之成为 gzip 格式的压缩文件,那么只需运行如下命令: $ gzip ostechnix.txt 上面的命令运行结束之后,将会出现一个名为 ostechnix.txt.gz 的 gzip 格式压缩文件,代替了原始的 ostechnix.txt 文件。 gzip 命令还可以有其他用法。一个有趣的例子是,我们可以将一个特定命令的输出通过管道传递,然后作为 gzip 程序的输入来创建一个压缩文件。看下面的命令: $ ls -l Downloads/ | gzip > ostechnix.txt.gz 上面的命令将会创建一个 gzip 格式的压缩文件,文件的内容为 Downloads 目录的目录项。 1.2.压缩文件并将输出写到新文件中(不覆盖原始文件) 默认情况下,gzip 程序会压缩给定文件,并以压缩文件替代原始文件。但是,你也可以保留原始文件,并将输出写到标准输出。比如,下面这个命令将会压缩 ostechnix.txt 文件,并将输出写入文件 output.txt.gz。 $ gzip -c ostechnix.txt > output.txt.gz 类似地,要解压缩一个 gzip 格式的压缩文件并指定输出文件的文件名,只需运行: $ gzip -c -d output.txt.gz > ostechnix1.txt 上面的命令将会解压缩 output.txt.gz 文件,并将输出写入到文件 ostechnix1.txt 中。在上面两个例子中,原始文件均不会被删除。 1.3.解压缩文件 如果要解压缩 ostechnix.txt.gz 文件,并以原始未压缩版本的文件来代替它,那么只需运行: $ gzip -d ostechnix.txt.gz 我们也可以使用 gunzip 程序来解压缩文件: $ gunzip ostechnix.txt.gz 1.4.在不解压缩的情况下查看压缩文件的内容 如果你想在不解压缩的情况下,使用 gzip 程序查看压缩文件的内容,那么可以像下面这样使用 -c 选项: $ gunzip -c ostechnix1.txt.gz 或者,你也可以像下面这样使用 zcat 程序: $ zcat ostechnix.txt.gz 你也可以通过管道将输出传递给 less 命令,从而一页一页的来查看输出,就像下面这样: $ gunzip -c ostechnix1.txt.gz | less $ zcat ostechnix.txt.gz | less 另外,zless 程序也能够实现和上面的管道同样的功能。 $ zless ostechnix1.txt.gz 1.5.使用 gzip 压缩文件并指定压缩级别 gzip 的另外一个显著优点是支持压缩级别。它支持下面给出的 3 个压缩级别: 1 – 最快 (最差) 9 – 最慢 (最好) 6 – 默认级别 要压缩名为 ostechnix.txt 的文件,使之成为“最好”压缩级别的 gzip 压缩文件,可以运行: $ gzip -9 ostechnix.txt 1.6.连接多个压缩文件 我们也可以把多个需要压缩的文件压缩到同一个文件中。如何实现呢?看下面这个例子。 $ gzip -c ostechnix1.txt > output.txt.gz $ gzip -c ostechnix2.txt >> output.txt.gz 上面的两个命令将会压缩文件 ostechnix1.txt 和 ostechnix2.txt,并将输出保存到一个文件 output.txt.gz 中。 你可以通过下面其中任何一个命令,在不解压缩的情况下,查看两个文件 ostechnix1.txt 和 ostechnix2.txt 的内容: $ gunzip -c output.txt.gz $ gunzip -c output.txt $ zcat output.txt.gz $ zcat output.txt 如果你想了解关于 gzip 的更多细节,请参阅它的 man 手册。 $ man gzip 参考:gzip命令_Linux gzip命令使用详解:用来压缩文件
2.使用 bzip2 程序来压缩和解压缩文件 bzip2 和 gzip 非常类似,但是 bzip2 使用的是 Burrows-Wheeler 块排序压缩算法,并使用哈夫曼编码。使用 bzip2 压缩的文件以 “.bz2” 扩展结尾。 正如我上面所说的, bzip2 的用法和 gzip 几乎完全相同。只需在上面的例子中将 gzip 换成 bzip2,将 gunzip 换成 bunzip2,将 zcat 换成 bzcat 即可。 要使用 bzip2 压缩一个文件,并以压缩后的文件取而代之,只需运行: $ bzip2 ostechnix.txt 如果你不想替换原始文件,那么可以使用 -c 选项,并把输出写入到新文件中。 $ bzip2 -c ostechnix.txt > output.txt.bz2 如果要解压缩文件,则运行: $ bzip2 -d ostechnix.txt.bz2 或者: $ bunzip2 ostechnix.txt.bz2 如果要在不解压缩的情况下查看一个压缩文件的内容,则运行: $ bunzip2 -c ostechnix.txt.bz2 或者: $ bzcat ostechnix.txt.bz2 如果你想了解关于 bzip2 的更多细节,请参阅它的 man 手册。 $ man bzip2 参考:bzip2命令_Linux bzip2命令使用详解:将文件压缩成bz2格式
总结 在本文中,我们对 gzip 及 bzip2 命令做了详细的讲解,以及使用它们的技巧,运用好这两个命令能提高你在 Linux 系统下压缩和解压缩文件的效率。
相关主题 |