如何在 Linux 中压缩和解压缩文件
2016-03-30 00:00
721 查看
当在备份重要文件和通过网络发送大文件的时候,对文件进行压缩非常有用。请注意,压缩一个已经压缩过的文件会增加额外开销,因此你将会得到一个更大一些的文件。所以,请不要压缩已经压缩过的文件。在 GNU/Linux 中,有许多程序可以用来压缩和解压缩文件。在这篇教程中,我们仅学习其中两个应用程序。
在类 Unix 系统中,最常见的用来压缩文件的程序是:
gzip
bzip2
1 – 最快 (最差)
9 – 最慢 (最好)
6 – 默认级别
要压缩名为
你可以通过下面其中任何一个命令,在不解压缩的情况下,查看两个文件
正如我上面所说的,
要使用
干杯!
via: https://www.ostechnix.com/how-to-compress-and-decompress-files-in-linux/
作者:SK 选题:lujun9972 译者:ucasFL 校对:wxy
在类 Unix 系统中,最常见的用来压缩文件的程序是:
gzip
bzip2
1. 使用 gzip 程序来压缩和解压缩文件
gzip是一个使用 Lempel-Ziv 编码(LZ77)算法来压缩和解压缩文件的实用工具。
1.1 压缩文件
如果要压缩一个名为ostechnix.txt的文件,使之成为 gzip 格式的压缩文件,那么只需运行如下命令:
上面的命令运行结束之后,将会出现一个名为$ gzip ostechnix.txt
ostechnix.txt.gz的 gzip 格式压缩文件,代替了原始的
ostechnix.txt文件。
gzip命令还可以有其他用法。一个有趣的例子是,我们可以将一个特定命令的输出通过管道传递,然后作为
gzip程序的输入来创建一个压缩文件。看下面的命令:
上面的命令将会创建一个 gzip 格式的压缩文件,文件的内容为$ ls -l Downloads/ | gzip > ostechnix.txt.gz
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
2. 使用 bzip2 程序来压缩和解压缩文件
bzip2和
gzip非常类似,但是
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
总结
在这篇教程中,我们学习了gzip和
bzip2程序是什么,并通过 GNU/Linux 下的一些例子学习了如何使用它们来压缩和解压缩文件。接下来,我们将要学习如何在 Linux 中将文件和目录归档。
干杯!
via: https://www.ostechnix.com/how-to-compress-and-decompress-files-in-linux/
作者:SK 选题:lujun9972 译者:ucasFL 校对:wxy
相关文章推荐
- centos7下集群部署zookeeper(伪集群)
- centos 下非正常关机错误--/dev/VolGroup00/LogVol00 contains
- linux 命令
- CentOS7 开放端口
- linux中gethostbyname和gethostbyaddr的使用
- linux crontab
- Linux 查看ERROR日志方法
- CentOS下的iptables常用操作
- Linux最大线程数限制及当前线程数查询
- 正确配置Linux系统ulimit值的方法
- Linux入门学习(四)
- linux centos 7 下安装express
- linux 中 root用户登入mysql数据库权限受限
- [Linux]--设备的分类
- linux centos 7 下安装sublime
- 二、Linux i2c adapter 驱动
- Linux学习笔记——使用指定的用户权限执行程序——sudo
- 鸟哥的linux私房菜勘误表
- linux cp命令详解
- 《Linux内核设计与实现》第3章读书笔记