标签 bzip2 下的文章

当在备份重要文件和通过网络发送大文件的时候,对文件进行压缩非常有用。请注意,压缩一个已经压缩过的文件会增加额外开销,因此你将会得到一个更大一些的文件。所以,请不要压缩已经压缩过的文件。在 GNU/Linux 中,有许多程序可以用来压缩和解压缩文件。在这篇教程中,我们仅学习其中两个应用程序。

在类 Unix 系统中,最常见的用来压缩文件的程序是:

  1. gzip
  2. 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.txtostechnix2.txt,并将输出保存到一个文件 output.txt.gz 中。

你可以通过下面其中任何一个命令,在不解压缩的情况下,查看两个文件 ostechnix1.txtostechnix2.txt 的内容:

$ gunzip -c output.txt.gz
$ gunzip -c output.txt
$ zcat output.txt.gz
$ zcat output.txt

如果你想了解关于 gzip 的更多细节,请参阅它的 man 手册。

$ man gzip

2. 使用 bzip2 程序来压缩和解压缩文件

bzip2gzip 非常类似,但是 bzip2 使用的是 Burrows-Wheeler 块排序压缩算法,并使用 哈夫曼 Huffman 编码。使用 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

总结

在这篇教程中,我们学习了 gzipbzip2 程序是什么,并通过 GNU/Linux 下的一些例子学习了如何使用它们来压缩和解压缩文件。接下来,我们将要学习如何在 Linux 中将文件和目录归档。

干杯!


via: https://www.ostechnix.com/how-to-compress-and-decompress-files-in-linux/

作者:SK 选题:lujun9972 译者:ucasFL 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

对文件进行压缩,可以通过使用较少的字节对文件中的数据进行编码来显著地减小文件的大小,并且在跨网络的文件的备份和传送时很有用。 另一方面,解压文件意味着将文件中的数据恢复到初始状态。

Linux 中有几个文件压缩和解压缩工具,比如gzip、7-zip、Lrzip、PeaZip 等等。

本篇教程中,我们将介绍如何在 Linux 中使用 bzip2 工具压缩及解压缩.bz2文件。

bzip2 是一个非常有名的压缩工具,并且在大多数主流 Linux 发行版上都有,你可以在你的发行版上用合适的命令来安装它。

$ sudo apt install bzip2     [On Debian/Ubuntu] 
$ sudo yum install  bzip2    [On CentOS/RHEL]
$ sudo dnf install bzip2     [On Fedora 22+]

使用 bzip2 的常规语法是:

$ bzip2 option(s) filenames 

如何在 Linux 中使用“bzip2”压缩文件

你可以如下压缩一个文件,使用-z标志启用压缩:

$ bzip2 filename
或者
$ bzip2 -z filename

要压缩一个.tar文件,使用的命令为:

$ bzip2 -z backup.tar

重要:bzip2 默认会在压缩及解压缩文件时删除输入文件(原文件),要保留输入文件,使用-k或者--keep选项。

此外,-f或者--force标志会强制让 bzip2 覆盖已有的输出文件。

------ 要保留输入文件  ------
$ bzip2 -zk filename
$ bzip2 -zk backup.tar

你也可以设置块的大小,从 100k 到 900k,分别使用-1或者--fast-9或者--best

$ bzip2 -k1  Etcher-linux-x64.AppImage
$ ls -lh  Etcher-linux-x64.AppImage.bz2 
$ bzip2 -k9  Etcher-linux-x64.AppImage 
$ bzip2 -kf9  Etcher-linux-x64.AppImage 
$ ls -lh Etcher-linux-x64.AppImage.bz2 

下面的截屏展示了如何使用选项来保留输入文件,强制 bzip2 覆盖输出文件,并且在压缩中设置块的大小。

Compress Files Using bzip2 in Linux

在 Linux 中使用 bzip2 压缩文件

如何在 Linux 中使用“bzip2”解压缩文件

要解压缩.bz2文件,确保使用-d或者--decompress选项:

$ bzip2 -d filename.bz2

注意:这个文件必须是.bz2的扩展名,上面的命令才能使用。

$ bzip2 -vd Etcher-linux-x64.AppImage.bz2 
$ bzip2 -vfd Etcher-linux-x64.AppImage.bz2 
$ ls -l Etcher-linux-x64.AppImage 

Decompress bzip2 File in Linux

在 Linux 中解压 bzip2 文件

要浏览 bzip2 的帮助及 man 页面,输入下面的命令:

$ bzip2  -h
$ man bzip2

最后,通过上面简单的阐述,我相信你现在已经可以在 Linux 中压缩及解压缩bz2文件了。然而,有任何的问题和反馈,可以在评论区中留言。

重要的是,你可能想在 Linux 中查看一些重要的 tar 命令示例,以便学习使用 tar 命令来创建压缩归档文件


via: http://www.tecmint.com/linux-compress-decompress-bz2-files-using-bzip2

作者:Aaron Kili 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

很多时候,通过互联网发送或接收大文件和图片是一件令人头疼的事。压缩及解压缩工具正好可以应对这个问题。下面让我们快速浏览一些可以使得我们的工作更加轻松的开源工具。

Tar

Tar 由 'Tape archiver(磁带归档器)' 衍生而来,最初被用来在磁带上归档和存储文件。Tar 是一个 GNU 软件,它可以压缩一组文件(归档),或提取它们以及对已有的归档文件进行相关操作。在存储、备份以及传输文件方面,它是很有用的。在创建归档文件时,Tar 可以保持原有文件和目录结构不变。通过 Tar 归档的文件的后缀名为 ‘.tar’。

基本用法如下:

a) 创建归档 (c / --create)

tar --create --verbose --file=archive.tar file1 file2 file3

tar cvf archive.tar file1 file2 file3

tar cvf

创建一个归档

b) 列出归档文件内容 ( t / --list)

tar --list archive.tar

tar tvf

列出归档中包含的文件

c) 提取归档 (x / --extract)

tar xvf archive.tar

tar xvf archive.tar --wildcards '*.c'    
-  从归档中提取后缀名为 *.c 的文件。

tar xvf

提取文件

tar xvf --wildcards

只提取需要的文件

d) 对归档文件进行更新 ( u / --update)

tar uvf archive.tar newfile.c     
-  假如归档的newfile.c  要比先前已经归档的新,则添加更新的 newfile.c 到归档里面.

tar uvf

更新一个归档

e) 从归档中删除文件 (--delete)

tar --delete -f archive.tar file1.c   
- 从压缩包'archive.tar' 中删除文件'file1.c' 

tar --delete

删除文件

更加具体的使用方法请参考tar 主页

Gzip / Gunzip

Gzip 即 GNU zip,它是一个被广泛用于 Linux 操作系统中的压缩应用,被其压缩的文件的后缀名为'*.gz' 。

基本用法如下:

a) 压缩文件

gzip file(s)

每个文件将被单独压缩

gzip

压缩文件

通常在压缩完成后,它会将原来的文件删除。我们可以使用 -c 选项来保留原来的文件。

gzip -c file > file.gz

gzip-c

压缩后保留原有文件

我们也可以将一组文件压缩到一个单独的文件中

cat file1 file2 file3 | gzip > archieve.gz

gz group

压缩一组文件

b) 检查压缩比

被压缩文件的压缩比可以使用 ‘-l’ 选项来进行检验。

gzip -l archieve.gz

gzip -l

检查压缩率

c) 解压文件

Gunzip 用来解压文件,在这里,原有的(压缩)文件在被解压后同样会被删除。使用 -c选项来保留原始文件。

gunzip -c archieve.gz

gunzip -c

解压文件

gzip 加上'-d'选项 和 gunzip 对压缩文件有同样的效果。

更多细节可以从 gzip 主页 得到。

Bzip2 / Bunzip2

同 gzip 一样,Bzip2 也是一个压缩工具,与其他传统的工具相比,它可以将文件压缩到更小,但其缺点为:运行速度比 gzip 慢。

基本用法如下:

a) 压缩文件

一般情况下,针对压缩而言,Bzip2 不用什么选项,将被压缩的文件被传递为它的参数。每个文件被单独压缩,且压缩文件以 'bz2' 为后缀名。

bzip2 file1 file2 file3

bzip2

文件压缩

使用 '-k' 选项可以使得在压缩或解压缩之后保留原有的文件。

bzip2 -k

在压缩后保留原有文件

b) 解压

'-d' 选项被用来解压缩。

bzip2 -d

使用 -d 选项解压缩文件

也可以使用 bunzip2 来解压缩。

bunzip2 filename

bunzip2

解压文件

bunzip2 可以解压后缀名为 bz2, bz, tbz2 和 tbz 的文件。带有 tbz2 和 tbz 的文件在压缩后,后缀名将变为'.tar' 。

bzip2 -dc   
-   执行解压文件到标准输出的功能。

7-zip

7-zip 是另一个开源压缩软件。它使用 7z 这种新的压缩格式,并支持高压缩比。因此,它被认为是比先前提及的压缩工具更好的软件。在 Linux 下,可以通过 p7zip 软件包得到,该软件包里包含 3 个二进制文件: 7z, 7za 和 7zr,读者可以参考 p7zip wiki 来了解这三个二进制文件之间的不同。在本篇中,我们将使用 7zr 来解释 7-zip 的用法。归档文件以 '.7z' 为后缀名。

基本用法如下:

a) 创建归档

7zr a archive-name.7z file-name(s) / directory-name(s)

7zr a

创建一个归档文件

b) 列出归档包含文件

7zr l archive-name.7z

7zr l

列出归档中包含的文件

c) 提取归档文件

7zr e archive-name.7z

7zr e

提取归档

d) 更新归档文件

7zr u archive-name.7z new-file

7zr u

更新一个归档文件

e) 从归档文件中删除文件

7zr d archive-name.7z file-to-be-deleted

7zr d

删除文件

7zr l

确认文件删除


via: http://linoxide.com/tools/linux-compress-decompress-tools/

作者:B N Poornima 译者:FSSlc 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出