From d4326b05aa58b0ec5e21472d39a8e51e24530e36 Mon Sep 17 00:00:00 2001 From: "Xingyu.Wang" Date: Thu, 13 Sep 2018 22:00:45 +0800 Subject: [PATCH] PRF:20180324 How To Compress And Decompress Files In Linux.md @ucasFL --- ... Compress And Decompress Files In Linux.md | 123 ++++++++---------- 1 file changed, 55 insertions(+), 68 deletions(-) diff --git a/translated/tech/20180324 How To Compress And Decompress Files In Linux.md b/translated/tech/20180324 How To Compress And Decompress Files In Linux.md index a9ef889130..d968bbd6db 100644 --- a/translated/tech/20180324 How To Compress And Decompress Files In Linux.md +++ b/translated/tech/20180324 How To Compress And Decompress Files In Linux.md @@ -5,206 +5,193 @@ 当在备份重要文件和通过网络发送大文件的时候,对文件进行压缩非常有用。请注意,压缩一个已经压缩过的文件会增加额外开销,因此你将会得到一个更大一些的文件。所以,请不要压缩已经压缩过的文件。在 GNU/Linux 中,有许多程序可以用来压缩和解压缩文件。在这篇教程中,我们仅学习其中两个应用程序。 -### 压缩和解压缩文件 - 在类 Unix 系统中,最常见的用来压缩文件的程序是: 1. gzip 2. bzip2 +### 1. 使用 gzip 程序来压缩和解压缩文件 +`gzip` 是一个使用 Lempel-Ziv 编码(LZ77)算法来压缩和解压缩文件的实用工具。 -##### 1\. 使用 Gzip 程序来压缩和解压缩文件 +#### 1.1 压缩文件 -Gzip 是一个使用 Lempel-Ziv 编码(LZ77)算法来压缩和解压缩文件的实用工具。 +如果要压缩一个名为 `ostechnix.txt` 的文件,使之成为 gzip 格式的压缩文件,那么只需运行如下命令: -**1.1 压缩文件** - -如果要压缩一个名为 ostechnix.txt 的文件,使之成为 gzip 格式的压缩文件,那么只需运行如下命令: ``` $ gzip ostechnix.txt - ``` -上面的命令运行结束之后,将会出现一个名为 ostechnix.txt.gz 的 gzip 格式压缩文件,代替原始的 ostechnix.txt 文件。 +上面的命令运行结束之后,将会出现一个名为 `ostechnix.txt.gz` 的 gzip 格式压缩文件,代替了原始的 `ostechnix.txt` 文件。 + +`gzip` 命令还可以有其他用法。一个有趣的例子是,我们可以将一个特定命令的输出通过管道传递,然后作为 `gzip` 程序的输入来创建一个压缩文件。看下面的命令: -gzip 命令还可以有其他用法。一个有趣的例子是,我们可以将一个特定命令的输出通过管道传递,然后作为 gzip 程序的输入来创建一个压缩文件。看下面的命令: ``` $ ls -l Downloads/ | gzip > ostechnix.txt.gz - ``` -上面的命令将会创建一个 gzip 格式的压缩文件,文件的内容为 “Downloads” 目录的目录项。 +上面的命令将会创建一个 gzip 格式的压缩文件,文件的内容为 `Downloads` 目录的目录项。 -**1.2 压缩文件并将输出写到新文件中(不覆盖原始文件) -** +#### 1.2 压缩文件并将输出写到新文件中(不覆盖原始文件) + +默认情况下,`gzip` 程序会压缩给定文件,并以压缩文件替代原始文件。但是,你也可以保留原始文件,并将输出写到标准输出。比如,下面这个命令将会压缩 `ostechnix.txt` 文件,并将输出写入文件 `output.txt.gz`。 -默认情况下,gzip 程序会压缩给定文件,并以压缩文件替代原始文件。但是,你也可以保留原始文件,并将输出写到标准输出。比如,下面这个命令将会压缩 ostechnix.txt 文件,并将输出写入文件 output.txt.gz 。 ``` $ gzip -c ostechnix.txt > output.txt.gz - ``` -类似地,要解压缩一个 gzip 格式的压缩文件并指定输出文件的文件名,只需运行: +类似地,要解压缩一个 `gzip` 格式的压缩文件并指定输出文件的文件名,只需运行: + ``` $ gzip -c -d output.txt.gz > ostechnix1.txt - ``` -上面的命令将会解压缩 output.txt.gz 文件,并将输出写入到文件 ostechnix1.txt 中。在上面两个例子中,原始文件均不会被删除。 +上面的命令将会解压缩 `output.txt.gz` 文件,并将输出写入到文件 `ostechnix1.txt` 中。在上面两个例子中,原始文件均不会被删除。 -**1.3 解压缩文件** +#### 1.3 解压缩文件 + +如果要解压缩 `ostechnix.txt.gz` 文件,并以原始未压缩版本的文件来代替它,那么只需运行: -如果要解压缩 ostechnix.txt.gz 文件,并以原始未压缩版本的文件来代替它,那么只需运行: ``` $ gzip -d ostechnix.txt.gz - ``` -我们也可以使用 gunzip 程序来解压缩文件: +我们也可以使用 `gunzip` 程序来解压缩文件: + ``` $ gunzip ostechnix.txt.gz - ``` -**1.4 在不解压缩的情况下查看压缩文件的内容** +#### 1.4 在不解压缩的情况下查看压缩文件的内容 + +如果你想在不解压缩的情况下,使用 `gzip` 程序查看压缩文件的内容,那么可以像下面这样使用 `-c` 选项: -如果你想在不解压缩的情况下,使用 gzip 程序查看压缩文件的内容,那么可以像下面这样使用 -c 选项: ``` $ gunzip -c ostechnix1.txt.gz - ``` -或者,你也可以像下面这样使用 zcat 程序: +或者,你也可以像下面这样使用 `zcat` 程序: + ``` $ zcat ostechnix.txt.gz - ``` -你也可以通过管道将输出传递给 less 命令,从而一页一页的来查看输出,就像下面这样: +你也可以通过管道将输出传递给 `less` 命令,从而一页一页的来查看输出,就像下面这样: + ``` $ gunzip -c ostechnix1.txt.gz | less - $ zcat ostechnix.txt.gz | less - ``` -另外,zless 程序也能够实现和上面的管道同样的功能。 +另外,`zless` 程序也能够实现和上面的管道同样的功能。 + ``` $ zless ostechnix1.txt.gz - ``` -**1.5 使用 gzip 压缩文件并指定压缩级别** +#### 1.5 使用 gzip 压缩文件并指定压缩级别 -Gzip 的另外一个显著优点是支持压缩级别。它支持下面给出的 3 个压缩级别: +`gzip` 的另外一个显著优点是支持压缩级别。它支持下面给出的 3 个压缩级别: * **1** – 最快 (最差) * **9** – 最慢 (最好) * **6** – 默认级别 +要压缩名为 `ostechnix.txt` 的文件,使之成为“最好”压缩级别的 gzip 压缩文件,可以运行: - -要压缩名为 ostechnix.txt 的文件,使之成为“最好”压缩级别的 gzip 压缩文件,可以运行: ``` $ gzip -9 ostechnix.txt - ``` -**1.6 连接多个压缩文件** +#### 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`,并将输出保存到一个文件 `output.txt.gz` 中。 + +你可以通过下面其中任何一个命令,在不解压缩的情况下,查看两个文件 `ostechnix1.txt` 和 `ostechnix2.txt` 的内容: -你可以通过下面其中任何一个命令,在不解压缩的情况下,查看两个文件 ostechnix1.txt 和 ostechnix2.txt 的内容: ``` $ gunzip -c output.txt.gz - $ gunzip -c output.txt - $ zcat output.txt.gz - $ zcat output.txt - ``` -如果你想了解关于 gzip 的更多细节,请参阅它的 man 手册。 +如果你想了解关于 `gzip` 的更多细节,请参阅它的 man 手册。 + ``` $ man gzip - ``` -##### 2\. 使用 bzip2 程序来压缩和解压缩文件 +### 2. 使用 bzip2 程序来压缩和解压缩文件 -bzip2 和 gzip 非常类似,但是 bzip2 使用的是 Burrows-Wheeler 块排序压缩算法,并使用哈夫曼Huffman编码。使用 bzip2 压缩的文件以 “.bz2” 扩展结尾。 +`bzip2` 和 `gzip` 非常类似,但是 `bzip2` 使用的是 Burrows-Wheeler 块排序压缩算法,并使用哈夫曼Huffman编码。使用 `bzip2` 压缩的文件以 “.bz2” 扩展结尾。 -正如我上面所说的, bzip2 的用法和 gzip 几乎完全相同。只需在上面的例子中将 gzip 换成 bzip2,将 gunzip 换成 bunzip2,将 zcat 换成 bzcat 即可。 +正如我上面所说的, `bzip2` 的用法和 `gzip` 几乎完全相同。只需在上面的例子中将 `gzip` 换成 `bzip2`,将 `gunzip` 换成 `bunzip2`,将 `zcat` 换成 `bzcat` 即可。 + +要使用 `bzip2` 压缩一个文件,并以压缩后的文件取而代之,只需运行: -要使用 bzip2 压缩一个文件,并以压缩后的文件取而代之,只需运行: ``` $ bzip2 ostechnix.txt - ``` -如果你不想替换原始文件,那么可以使用 -c 选项,并把输出写入到新文件中。 +如果你不想替换原始文件,那么可以使用 `-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 手册。 +如果你想了解关于 `bzip2` 的更多细节,请参阅它的 man 手册。 + ``` $ man bzip2 - ``` -##### 总结 +### 总结 -在这篇教程中,我们学习了 gzip 和 bzip2 程序是什么,并通过 GNU/Linux 下的一些例子学习了如何使用它们来压缩和解压缩文件。接下来,我们将要学习如何在 Linux 中将文件和目录归档。 +在这篇教程中,我们学习了 `gzip` 和 `bzip2` 程序是什么,并通过 GNU/Linux 下的一些例子学习了如何使用它们来压缩和解压缩文件。接下来,我们将要学习如何在 Linux 中将文件和目录归档。 干杯! - -------------------------------------------------------------------------------- via: https://www.ostechnix.com/how-to-compress-and-decompress-files-in-linux/ 作者:[SK][a] -译者:[ucasFL](https://github.com/ucasFL) -校对:[校对者ID](https://github.com/校对者ID) 选题:[lujun9972](https://github.com/lujun9972) +译者:[ucasFL](https://github.com/ucasFL) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出