Linux 下的压缩和解压缩

文章目录
  1. 1. tar
    1. 1.1. 基本用法:
      1. 1.1.1. 打包 -c
      2. 1.1.2. 添加 -r
      3. 1.1.3. 更新 -u
      4. 1.1.4. 列出 -t
      5. 1.1.5. 解包 -x
    2. 1.2. tar 与其他压缩程序
      1. 1.2.1. tar 与 gzip
        1. 1.2.1.1. 打包并使用 gzip 压缩
        2. 1.2.1.2. 使用 gzip 解压缩并解包
      2. 1.2.2. tar 与 bzip2
        1. 1.2.2.1. 打包并使用 bzip2 压缩
        2. 1.2.2.2. 使用 bzip2 解压缩并解包
      3. 1.2.3. tar 与 compress
        1. 1.2.3.1. 打包并使用 compress 压缩
        2. 1.2.3.2. 使用 compress 解压缩并解包
    3. 1.3. 总结 tar 知识
  2. 2. zip 和 rar
    1. 2.1. zip
      1. 2.1.1. 压缩
      2. 2.1.2. 解压
    2. 2.2. rar
      1. 2.2.1. 压缩
      2. 2.2.2. 解压
  3. 3. 总结

请注意:本文编写于 2019-07-20,其中某些信息可能已经失去时效性。

Linux 下常见的压缩文件格式有:

1
.tar .gz .tar.gz .tgz .bz2 .tar.bz2 .Z .tar.Z .zip .rar

下面我们就分别讲一下在 Linux 下如何用不同的方式对文件进行打包、压缩和解压缩

tar

Linux 下最常用的打包程序就是 tar 了,使用 tar 程序打出来的包我们常称为 tar包,tar包 文件的命令通常都是以 .tar 结尾的。生成 tar包 后,就可以用其它的程序来进行压缩了。

基本用法:

打包 -c

1
2
3
4
# 将所有 .jpg 文件打包为 all.tar
tar -cf all.tar *.jpg
# -c 表示产生新的包
# -f 指定包的文件名

添加 -r

1
2
3
4
# 将所有 .gif 文件添加到 all.tar
tar -rf all.tar *.gif
# -r 增加文件
# -f 指定包的文件名

更新 -u

1
2
3
4
# 更新 all.tar 中 logo.gif 文件
tar -uf all.tar logo.gif
# -u 更新文件
# -f 指定包的文件名

列出 -t

1
2
3
4
# 列出 all.tar 中所有文件
tar -tf all.tar
# -t 列出文件
# -f 指定包的文件名

解包 -x

1
2
3
4
# 解包 all.tar 中所有文件
tar -xf all.tar
# -x 解包
# -f 指定包的文件名

tar 与其他压缩程序

为了方便用户在打包解包的同时可以压缩或解压文件,tar 提供了一种特殊的功能:可以在打包或解包的同时调用其它的压缩程序,比如:gzip bzip2 等。

tar 与 gzip

gzipGNU 组织开发的一个压缩程序,.gz结尾的文件就是 gzip 压缩的结果。

单纯的 .gzgunzip 命令解压

tar 中使用 -z 这个参数来调用 gzip,举例说明:

打包并使用 gzip 压缩
1
2
3
4
tar -czf all.tar.gz *.jpg
# -c 表示产生新的包
# -z 调用 gzip
# -f 指定包的文件名
使用 gzip 解压缩并解包
1
2
3
4
tar -xzf all.tar.gz
# -x 解包
# -z 调用 gzip
# -f 指定包的文件名

tar 与 bzip2

bzip2 是一个压缩能力更强的压缩程序,.bz2 结尾的文件就是 bzip2 压缩的结果。

单纯的 .bz2bunzip2 命令解压

tar 中使用 -j 这个参数来调用 bzip2,举例说明:

打包并使用 bzip2 压缩
1
2
3
4
tar -cjf all.tar.bz2 *.jpg
# -c 打包
# -j 调用 bzip2
# -f 指定包的文件名
使用 bzip2 解压缩并解包
1
2
3
4
tar -xjf all.tar.bz2
# -x 解包
# -j 调用 bzip2
# -f 指定包的文件名

tar 与 compress

compress 也是一个压缩程序,但使用人数并不多,.Z 结尾的文件就是 compress 压缩的结果。

单纯的 .Zuncompress 命令解压

tar 中使用 -Z 这个参数来调用 compress,举例说明:

打包并使用 compress 压缩
1
2
3
4
tar -cZf all.tar.Z *.jpg
# -c 打包
# -Z 调用 compress
# -f 指定包的文件名
使用 compress 解压缩并解包
1
2
3
4
tar -xZf all.tar.Z
# -x 解包
# -Z 调用 compress
# -f 指定包的文件名

总结 tar 知识

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-c 打包
-x 解包
-t 查看内容
-r 向压缩归档文件末尾追加文件
-u 更新原压缩包中的文件
以上五个是独立的命令参数,可以和别的命令连用但只能用其中一个

下面的参数是根据需要在压缩或解压时按需搭配
-z 调用 gzip
-j 调用 bzip2
-Z 调用 compress
-v 显示过程
-O 将文件解压到标准输出

-f 为必要参数,所有命令都必须标明
-f 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名

zip 和 rar

.zip.rarWindow 下的常见压缩文件,Linux也有相应的方法来解压它们:

zip

Linux 下提供了 zipunzip 程序,zip 是压缩命令程序,unzip 是解压命令程序。它们的参数选项很多,这里只做简单介绍:

压缩

1
2
# 将所有 .jpg 文件压缩成一个 zip 包
zip all.zip *.jpg

解压

1
2
# 将 all.zip 中的所有文件解压出来
unzip all.zip

rar

要在 Linux 下处理 .rar 文件,需要安装 RAR for Linux,可以从网上下载

下载地址:http://www.rarsoft.com/download.htm

安装后就有了 rarunrar 这两个命令程序,rar 压缩,unrar 解压。依旧只做简单介绍:

压缩

1
2
# 将所有 .jpg 文件压缩成 all.rar,该程序会将 .rar 扩展名将自动附加到包名后
rar a all *.jpg

解压

1
2
# 将 all.rar 中的所有文件解压出来
unrar e all.rar

总结

到此为至,已经介绍了 Linux 下的 tar gzip gunzip bzip2 bunzip2 compress uncompress zip unzip rar unrar 等命令工具,使用它们可以对 .tar 、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、. Z、.tar.Z、.zip、.rar 这 10种 压缩文件进行解压。