Linux 下最为人熟知的归档/压缩工具
很多时候，通过互联网发送或接收大文件和图片是一件令人头疼的事。压缩及解压缩工具正好可以应对这个问题。下面让我们快速浏览一些可以使得我们的工作更加轻松的开源工具。 Tar  Tar 由 'Tape archiver（磁带归档器）' 衍生而来，最初被用来在磁带上归档和存储文件。Tar 是一个 GNU 软件，它可以压缩一组文件（归档），或提取它们以及对已有的归档文件进行相关操作。在存储、备份以及传输文件方面，它是很有用的。在创建归档文件时，Tar 可以保持原有文件和目录结构不变。通过 Tar 归档的文件的后缀名为 .tar。 基本用法如下： a) 创建归
压缩 归档 tar gzip bzip2 7z
66.249.65.135
[酷]
微博评论
2015-03-27T09:33:02.000
66.249.65.135
转发微博.
微博评论
2015-03-27T09:33:02.000
42.156.139.52
漏掉了一个很重要的神器: cpio啊！
微博评论
2015-03-27T10:03:04.000
42.156.139.52
回复@Linux中国:linux内核img打包全靠它，而且它可以方便地实现文件筛选，这点上比tar强大。 //@Linux中国:cpio 用的太少了吧？ //@IT江湖飘:漏掉了一个很重要的神器: cpio啊！
微博评论
2015-03-27T10:03:04.000
210.51.177.136
@我的印象笔记
微博评论
2015-03-27T13:33:02.000
218.20.155.124
写得相当实用
arhool
2015-03-29T00:07:36.000
223.73.117.115
赞一个
lyhabc
2015-03-29T11:45:43.000
119.248.104.102
感谢分享<br />
在Debian 8中部分命令无效。
来自河北石家庄的 Firefox 49.0|Windows 7 用户
2016-10-18T17:39:01.000
很多时候，通过互联网发送或接收大文件和图片是一件令人头疼的事。压缩及解压缩工具正好可以应对这个问题。下面让我们快速浏览一些可以使得我们的工作更加轻松的开源工具。 Tar  Tar 由 'Tape archiver（磁带归档器）' 衍生而来，最初被用来在磁带上归档和存储文件。Tar 是一个 GNU 软件，它可以压缩一组文件（归档），或提取它们以及对已有的归档文件进行相关操作。在存储、备份以及传输文件方面，它是很有用的。在创建归档文件时，Tar 可以保持原有文件和目录结构不变。通过 Tar 归档的文件的后缀名为 .tar。 基本用法如下： a) 创建归
很多时候，通过互联网发送或接收大文件和图片是一件令人头疼的事。压缩及解压缩工具正好可以应对这个问题。下面让我们快速浏览一些可以使得我们的工作更加轻松的开源工具。


### Tar


![](/data/attachment/album/201503/26/155328llggxaaxtllxrzhx.png)


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](/data/attachment/album/201503/26/155332fq00a601bqpb00yl.png)


*创建一个归档*


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



```
tar --list archive.tar

```

![tar tvf](/data/attachment/album/201503/26/155333gtcjtjkhhustzwm0.png)


*列出归档中包含的文件*


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



```
tar xvf archive.tar

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

```

![tar xvf](/data/attachment/album/201503/26/155334j1p7s41e6s1z1ktg.png)


*提取文件*


![tar xvf --wildcards](/data/attachment/album/201503/26/155335v8bz6zvdiraa7rra.png)


*只提取需要的文件*


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



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

```

![tar uvf](/data/attachment/album/201503/26/155337a0nxlxxbssobjzdr.png)


*更新一个归档*


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



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

```

![tar --delete](/data/attachment/album/201503/26/155338ph34ol4baaazqvpn.png)


*删除文件*


更加具体的使用方法请参考[tar 主页](http://www.gnu.org/software/tar/)。


### Gzip / Gunzip


![](/data/attachment/album/201503/26/155343r6le6osz6eglmvze.png)


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


**基本用法如下：**


#### a) 压缩文件



```
gzip file(s)

```

每个文件将被**单独压缩**。


![gzip](/data/attachment/album/201503/26/155343ckwgs2kcgsiciks2.png)


*压缩文件*


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



```
gzip -c file > file.gz

```

![gzip-c](/data/attachment/album/201503/26/155344a1t1bll1r6ll1761.png)


*压缩后保留原有文件*


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



```
cat file1 file2 file3 | gzip > archieve.gz

```

![gz group](/data/attachment/album/201503/26/155345b92712nzi1rga299.png)


*压缩一组文件*


#### b) 检查压缩比


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



```
gzip -l archieve.gz

```

![gzip -l](/data/attachment/album/201503/26/155346sjtsguj6tb4cebj8.png)


*检查压缩率*


#### c) 解压文件


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



```
gunzip -c archieve.gz

```

![gunzip -c](/data/attachment/album/201503/26/155347r6gcqa4yeaocavgj.png)


*解压文件*


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


更多细节可以从 [gzip 主页](http://www.gzip.org/) 得到。


### Bzip2 / Bunzip2


![](/data/attachment/album/201503/26/155347ivkih4zijh99k0la.png)


同 gzip 一样，[Bzip2](http://www.bzip.org/) 也是一个压缩工具，与其他传统的工具相比，它可以将文件压缩到更小，但其缺点为：运行速度比 gzip 慢。


**基本用法如下：**


#### a) 压缩文件


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



```
bzip2 file1 file2 file3

```

![bzip2](/data/attachment/album/201503/26/155348zkgt66ztg74hj6gh.png)


*文件压缩*


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


![bzip2 -k](/data/attachment/album/201503/26/155349t7p3qhz0pzrrgep1.png)


*在压缩后保留原有文件*


#### b) 解压


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


![bzip2 -d](/data/attachment/album/201503/26/155349ge4aoz4cse77des8.png)


*使用 -d 选项解压缩文件*


也可以使用 bunzip2 来解压缩。



```
bunzip2 filename

```

![bunzip2](/data/attachment/album/201503/26/155350nt9sguuy1hy9osfy.png)


*解压文件*


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



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

```

### 7-zip


![](/data/attachment/album/201503/26/155351hh7ic04vf323icvi.png)


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


**基本用法如下：**


#### a) 创建归档



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

```

![7zr a](/data/attachment/album/201503/26/155352hdguhaheeu47pef4.png)


*创建一个归档文件*


#### b) 列出归档包含文件



```
7zr l archive-name.7z

```

![7zr l](/data/attachment/album/201503/26/155353bvyrpg12c6jgb7j5.png)


*列出归档中包含的文件*


#### c) 提取归档文件



```
7zr e archive-name.7z

```

![7zr e](/data/attachment/album/201503/26/155354xegkfugcb4yre4ge.png)


*提取归档*


#### d) 更新归档文件



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

```

![7zr u](/data/attachment/album/201503/26/155356td1viigihg9ijddi.png)


*更新一个归档文件*


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



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

```

![7zr d](/data/attachment/album/201503/26/155356tysrcjsu0zsraxjj.png)


*删除文件*


![7zr l](/data/attachment/album/201503/26/155358lck57zchhkbe5595.png)


*确认文件删除*




---


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


作者：[B N Poornima](http://linoxide.com/author/bnpoornima/) 译者：[FSSlc](https://github.com/FSSlc) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

