[拾 得] zip gzip bzip2 & tar 压缩/打包 四大金刚

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[拾 得] zip gzip bzip2 & tar 压缩/打包 四大金刚相关的知识,希望对你有一定的参考价值。

坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/ 
 
索引:
  • 介绍压缩和打包
  • gzip bzip2 zip 的基本使用
  • gzip bzip2打包文件 需要 tar 的支援
  • 同一文件使用不同压缩工具的比较
  • 对zip gzip bzip2 信息总结
 
知识摘要:
  • 能够完成文件的压缩和解压的基本操作
  • 能够明白压缩和打包的概念
  • 对于选择何种压缩命令有初步认识
    • 涉及命令 : zip(unzip), gzip, bzip2, tar, dd, time, tree 
 技术分享
 
 
                                Photo by Mr Cup / Fabien Barral on Unsplash
 
压缩和解压是系统中常会用到的工具, Linux系统也不列外. 
对于从Windows系统过渡到Linux的朋友们, Linux系统的压缩工具总有一种让人"匪夷所思"的地方
譬如,我用命名(gzip) 把一个文件压缩好了, 为什么源文件就"不翼而飞"了呢? 又或者我把一个文件
解压了, 但我希望压缩文件也能保留... 这些问题,我们都将会在以下这篇blog中进行解答.
 
 
  • 介绍压缩和打包
我们在这里用一个形象的比喻来介绍 压缩 和 打包.
 
假设我有一项喜好,喜欢收集明星CD
为了这些CD,我特意打造了一个玻璃柜存放它们
可是有一天,我被通知这个下午内搬走. 
玻璃柜太重我很难将它抬走
于是我把将CD捆在一起
放到一个纸皮箱中装好
货运公司把它们搬到新家
 
其中, 这里的家, 可以比喻为操作系统,
玻璃柜是系统中一个分区 CD就是我们文件
压缩就相当于是将CD捆在一起 , 其目的是缩小收纳空间
打包就相当于是将捆好的CD放到一个箱子中, 其目的是便于运输
 
  • zip gzip bzip2  的基本使用
zip :  zip 命令是最符合 Windows操作人员习惯的命令
        因为它的压缩和解压都能不会影响(删除)原始文件
 
例子目录索引: 
  1. 压缩文件
  2. 解压(指定路径)zip压缩文件 
  3. 查看文件情况, 验证文件完整性
  4. 压缩文件夹
  5. 指定文件解压
  6. 删除zip压缩文件中的文件
  7. 增加指定文件到 zip压缩文件中
 
<<声明>>: 
1.终端的提示符为 [>]
2.[> #] 表示为注释内容
3.[>##...#1] 表示分割线
 
> ########################################################1
> # 使用zip压缩文件 zip 命令后添加 压缩后文件的名字, 约定成俗的习惯是 .zip 后跟需要压缩的文件
> #  zip file.zip file 
 
> ls
dir  video.mp4
> zip video.mp4.zip video.mp4
  adding: video.mp4 (deflated 100%)
> ls
dir  video.mp4  video.mp4.zip
 
#########################################################2
> # 解压zip 文件 , 解压后 原压缩包 不会被删除
> # 解压zip 文件, 指定解压路径 
 
> ls
dir  video.mp4.zip
> unzip video.mp4.zip
Archive:  video.mp4.zip
  inflating: video.mp4               
> ls
dir  video.mp4  video.mp4.zip
> unzip video.mp4.zip  -d dir/
Archive:  video.mp4.zip
  inflating: dir/video.mp4           
> ls dir/video.mp4
dir/video.mp4
>
 
 
> #########################################################3
> # 使用 unzip  -v 查看 zip 压缩文件中的文件, 但不解压文件
 
> unzip -v video.mp4.zip
Archive:  video.mp4.zip
Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
268435456  Defl:N   260516 100% 10-02-2017 21:55 2a0e7dbb  video.mp4
--------          -------  ---                            -------
268435456           260516 100%                            1 file
> # 使用unzip -t 选项 查看 zip 压缩文件 是否有损坏
 
> unzip -t video.mp4.zip
Archive:  video.mp4.zip
    testing: video.mp4                OK
No errors detected in compressed data of video.mp4.zip.
 
 
> #########################################################4
> # 使用 unzip -r 递归压缩 压缩文件夹(dir/)
 
> ls
dir  video.mp4
> zip -r compress.zip dir/ video.mp4
  adding: dir/ (stored 0%)
  adding: dir/file2 (stored 0%)
  adding: dir/file1 (stored 0%)
  adding: video.mp4 (deflated 100%)
 
 
> #########################################################5
> # 查看 zip 压缩文件中的文件, 创建一个 another_dir 
> # 使用 unzip [zip压缩文件] [需要解压的文件] -d [解压文件到指定的目录]
> # 实现指定解压zip文件中指定文件
 
> unzip -v compress.zip
Archive:  compress.zip
Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
       0  Stored        0   0% 10-02-2017 23:20 00000000  dir/
      16  Stored       16   0% 10-02-2017 23:21 b9bb280c  dir/file2
      16  Stored       16   0% 10-02-2017 23:21 b9bb280c  dir/file1
268435456  Defl:N   260516 100% 10-02-2017 21:55 2a0e7dbb  video.mp4
--------          -------  ---                            -------
268435488           260548 100%                            4 files
> mkdir another_dir
> ls -F
another_dir/  compress.zip  dir/  video.mp4
> unzip compress.zip dir/file1 -d another_dir/
Archive:  compress.zip
extracting: another_dir/dir/file1   
> ls -l another_dir/dir/file1
-rw-r--r-- 1 root root 16 Oct  2 23:21 another_dir/dir/file1
 
 
> #########################################################6
> # 在无需解压的情况下, 删除相关的文件
> # zip [需要操作的zip文件]  -d [需要删除的文件] 
 
> unzip -v compress.zip
Archive:  compress.zip
Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
       0  Stored        0   0% 10-02-2017 23:20 00000000  dir/
      16  Stored       16   0% 10-02-2017 23:21 b9bb280c  dir/file2
      16  Stored       16   0% 10-02-2017 23:21 b9bb280c  dir/file1
268435456  Defl:N   260516 100% 10-02-2017 21:55 2a0e7dbb  video.mp4
--------          -------  ---                            -------
268435488           260548 100%                            4 files
> zip compress.zip  -d dir/file2
deleting: dir/file2
> unzip -v compress.zip
Archive:  compress.zip
Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
       0  Stored        0   0% 10-02-2017 23:20 00000000  dir/
      16  Stored       16   0% 10-02-2017 23:21 b9bb280c  dir/file1
268435456  Defl:N   260516 100% 10-02-2017 21:55 2a0e7dbb  video.mp4
--------          -------  ---                            -------
268435472           260532 100%                            3 files
 
 
> #########################################################7
> # 添加新的文件到 zip 压缩文件中 
> # zip [需要操作的zip文件]  -g  [需要添加的文件] 
 
> zip -g  compress.zip dir/file2  
  adding: dir/file2 (stored 0%)
> unzip -v compress.zip
Archive:  compress.zip
Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
       0  Stored        0   0% 10-02-2017 23:20 00000000  dir/
      16  Stored       16   0% 10-02-2017 23:21 b9bb280c  dir/file1
268435456  Defl:N   260516 100% 10-02-2017 21:55 2a0e7dbb  video.mp4
      16  Stored       16   0% 10-02-2017 23:21 b9bb280c  dir/file2
--------          -------  ---                            -------
268435488           260548 100%                            4 files
 
gzip 在Linux中常用的压缩命令之一 
        默认情况下 [gzip 压缩/解压后原文件将消失]  [不能用于压缩文件夹]
 
例子目录索引: 
  1. 压缩文件 , 和保留原文件压缩
  2. 解压(指定路径)gzip压缩文件 , 和保留原文件压缩
  3. 查看文件情况, 验证文件完整性
 
<<声明>>: 
1.终端的提示符为 [>]
2.[> #] 表示为注释内容
3.[>##...#1] 表示分割线
 
> #########################################################1
> # 使用gzip 压缩文件,自动为文件添加后缀 .gz 不保留原文件
> #  gzip <需要压缩的文件>
 
> ls -F
dir/  video.mp4
> gzip video.mp4
> ls -F
dir/  video.mp4.gz
 
> # # # # # # # # # # # #
> # 使用 gzip 压缩文件, 保留原文件
> # 这里使用的是重定向方式 , 借此保留了原文件
> # gzip -c <需要压缩的文件> > <压缩后文件的名字>
 
> ls -F
dir/  video.mp4
> gzip -c video.mp4 > video.mp4.gz
> ls -F
dir/  video.mp4  video.mp4.gz
 
> #########################################################2
> # 使用gzip 解压文件 , 命令 gzip -d (decompose) <需要解压的文件>
> # 解压后原文件会消失 
 
> ls -F
dir/  video.mp4.gz
> gzip -d video.mp4.gz
> ls -F
dir/  video.mp4
 
> # # # # # # # # # # # #
> # 使用 gzip 解压文件, 命令 gzip -cd <需要解压的文件> > <解压后文件的命名>
> # 保留原文件
 
> ls -lh
total 260K
drwxr-xr-x 2 root root 4.0K Oct  3 00:06 dir
-rw-r--r-- 1 root root 255K Oct  3 00:25 video.mp4.gz
> gzip -cd  video.mp4.gz  > video.mp4
> ls -lh
total 257M
drwxr-xr-x 2 root root 4.0K Oct  3 00:06 dir
-rw-r--r-- 1 root root 256M Oct  3 00:40 video.mp4
-rw-r--r-- 1 root root 255K Oct  3 00:25 video.mp4.gz
 
 
> #########################################################3
> # 查看压缩文件相关信息  gzip -l <需要查看的压缩文件>
> # 测试压缩文件的完整性  gzip -t <需要验证的压缩文件>
 
> gzip -l video.mp4.gz
         compressed        uncompressed  ratio uncompressed_name
             260544           268435456  99.9% video.mp4
> gzip -t video.mp4.gz
> echo $?
0 
bzip2 在Linux中常用的压缩命令之一 
        默认情况下 [bzip2 压缩/解压后原文件将消失]  [不能用于压缩文件夹]
 
例子目录索引: 
  1. 压缩文件 , 和保留原文件压缩
  2. 解压(指定路径)bzip压缩文件 , 和保留原文件压缩
  3. 查看文件情况, 验证文件完整性
 
<<声明>>: 
1.终端的提示符为 [>]
2.[> #] 表示为注释内容
3.[>##...#1] 表示分割线
 
> #########################################################1
> # 使用bzip2 压缩文件,自动为文件添加后缀 .bz 不保留原文件
> #  bzip2 <需要压缩的文件>
 
> ls -F
dir/  video.mp4
> bzip2  video.mp4
> ls -F
dir/  video.mp4.bz2
 
 
> # # # # # # # # # # # #
> # 使用 -k (keep) 解压文件, 保留原文件
> # bzip2 -k <需要压缩的文件>  
 
> ls -F
dir/  video.mp4
> bzip2 -k video.mp4
> ls -F
dir/  video.mp4  video.mp4.bz2
 
 
> #########################################################2
> # 使用bzip2 解压文件 , 命令 bzip2 -d (decompose) <需要解压的文件>
> # 解压后原文件会消失 
 
> ls -F
dir/  video.mp4.bz2
> bzip2 -d video.mp4.bz2
> ls -F
dir/  video.mp4
 
> # # # # # # # # # # # #
> # 使用 gzip 解压文件, 命令 bzip2 -k <需要解压的文件> 
> # 保留原文件
 
> ls -F
dir/  video.mp4.bz2
> bzip2 -dk video.mp4.bz2
> ls -F
dir/  video.mp4  video.mp4.bz2
 
> #########################################################3
> # 查看压缩文件相关信息  bzcat  <需要查看的压缩文件>
> # 测试压缩文件的完整性  bzip2 -t <需要验证的压缩文件>
 
> cat file1
This is a file.
> bzip2 -k file1
> bzcat  file1.bz2
This is a file.
>
 
> bzip2 -t video.mp4.bz2
> echo $?
0
  • gzip bzip2打包文件 需要 tar 的支援
 
在应用场景中, 我们压缩的内容, 一般不会只包含一个大文件, 而是多个零散的文件和目录的组合.
而聪明的你应该不难发现, gzip 和 bzip2 是不支持对目录进行压缩的. 
这时候, 乐于助人的tar 是时候伸出援手了. 
tar 是一个十分强大的工具, 以下我们只展示常用的选项 A, c, r, t, x, f, v , --delete
 
<<声明>>: 
1.终端的提示符为 [>]
2.[> #] 表示为注释内容
 
> # 使用 tar 进行打包 -c 创建一个打包文件
> # 值得关注的是 命令执行后 打包的原始文件(../dir/file1 和 ../dir/file2)是不会消失的
> # tar -cf <打包后的文件名.tar> <需要打包的文件> ... <需要打包的文件>
 
> ls
dir  video.mp4
> tree dir/
dir/
├── file1
└── file2
0 directories, 2 files
> tar -cf dir.tar dir/file1 dir/file2
> ls
dir  dir.tar  video.mp4
>
 
> # 显示打包后的文件 -t 显示打包文件中的信息
> # tar -tf <需要查看的打包文件.tar>
 
> tar -tf dir.tar
dir/file1
dir/file2
 
> # 如果希望得到更加详细的信息(权限,用户,用户组,修改时间mtime), 可以加上 -v 选项
> # tar -tvf <需要查看的打包文件.tar>
 
> tar -tvvf dir.tar
-rw-r--r-- root/root        16 2017-10-02 23:21 dir/file1
-rw-r--r-- root/root        16 2017-10-02 23:21 dir/file2
 
> # 在原有的打包文件中,追加文件  -r 追加文件到打包文件中
> # 值得关注的是 命令执行后 追加的文件(video.mp4)是不会消失的 
> # tar -rvf <需要追加的文件> <存在的打包文件.tar>
 
> tar -rvf dir.tar  video.mp4
video.mp4
> tar -tf dir.tar
dir/file1
dir/file2
video.mp4
 
> # 在打包文件中 提取指定文件 -x 提取文件
> # tar -xf <打包文件.tar> <在打包文件中需要提取的文件>
 
> ls -F
dir/  dir.tar
> tar -tf dir.tar
dir/file1
dir/file2
video.mp4
> tar -xf dir.tar video.mp4
> ls -F
dir/  dir.tar  video.mp4
 
> # 指定存取目录, 将打包文件提取到该路径下 -C /PATH/TO/SOMEDIR
> # 值得注意的是, 指定的存取路径下文件夹必须存在
> # tar -xf <打包的文件.tar>  -C /存取/的/目录
 
> ls -F
another_dir/  dir/  dir.tar  video.mp4
> tar -xf dir.tar  -C another_dir
> tree another_dir/
another_dir/
├── dir
│   ├── file1
│   └── file2
└── video.mp4
1 directory, 3 files
 
> # 将两个打包文件进行合并
> # 值得注意的是,放在前面的合并文件, 将会成为合并后的文件(包含了自己内容和被合并文件的内容)
> # 被合并的文件在合并后, 不会小时
> # tar -Af <合并后的文件/合并的打包文件.tar> <被合并的打包文件2.tar>
 
> ls -F
dir/  dir.tar  video.mp4  video.tar
> tar -tf dir.tar
dir/file1
dir/file2
> tar -tf video.tar
video.mp4
> tar -Af dir.tar video.tar
> tar -tf dir.tar
dir/file1
dir/file2
video.mp4
> ls -F
dir/  dir.tar  video.mp4  video.tar
> tar -tf video.tar
video.mp4
 
 
> # 删除打包文件中的指定文件 --delete
> # tar --delete  --file <包含删除文件的打包文件.tar> <需要删除的文件>  .. <需要删除的文件> 
> # tar -f <包含删除文件的打包文件.tar>  --delete <需要删除的文件>  .. <需要删除的文件> 
 
> # 方法一
> tar -tf dir.tar
dir/file1
dir/file2
> tar --delete --file dir.tar dir/file1
> tar -tf dir.tar
dir/file2
>
 
> # 方法二
> tar -tf dir.tar
dir/file1
dir/file2
> tar -f dir.tar  --delete dir/file1
> tar -tf dir.tar
dir/file2
>
 
 
# # # # # # # # # # # # # # # # # # # # # # # # # #
# 这里插播一下 , 如果仅仅对数据进行打包处理 
# 我们的文件大小是不会减少的
# 反倒会增加文件的大小 
 
> ls
dir  video.mp4
> tar -cf dir.tar dir/*
> tar -cf video.tar video.mp4
> ls -lh
total 513M
drwxr-xr-x 2 root root 4.0K Oct  3 10:14 dir
-rw-r--r-- 1 root root  20K Oct  3 11:33 dir.tar
-rw-r--r-- 1 root root 256M Oct  3 10:39 video.mp4
-rw-r--r-- 1 root root 257M Oct  3 11:34 video.tar
>
 
# 因此我们的打包 一般需要和压缩一起进行使用
# # # # # # # # # # # # # # # # # # # # # # # # # #

 

# > 打包的同时,使用gzip 进行文件压缩 -z(gzip)
# > 完成后,文件不消失 
# > tar -zcvf <打包压缩后文件.tar.gz> <需要操作的文件目录/文件>
 
> ls -F
dir/  video.mp4
> tar -zcvf dir.tar.gz dir/
dir/
dir/file2
dir/file1
> ls -F
dir/  dir.tar.gz  video.mp4
> tar -tf dir.tar.gz
dir/
dir/file2
dir/file1
>
 
# > 解压 tar 包的文件 -x , 如需指定命令 同样 -C /path/to/some_dir
# > tar -zxvf <需要解压的文件.tar.gz>
 
> ls -F
dir.tar.gz  video.mp4
> tar -zxvf dir.tar.gz
dir/
dir/file2
dir/file1
> ls -F
dir/  dir.tar.gz  video.mp4
> tree dir/
dir/
├── file1
└── file2
0 directories, 2 files
>
 
# > 打包的同时,使用bzip2 进行文件压缩 -j(bzip2)
# > 完成后,文件不消失 
# > tar -jcvf <打包压缩后文件.tar.bz2> <需要操作的文件目录/文件>
 
> ls -F
dir/  video.mp4
> tar -jcvf dir.tar.bz2 dir/
dir/
dir/file2
dir/file1
> tar -tf dir.tar.bz2
dir/
dir/file2
dir/file1
 
# > 解压 tar 包的文件 -x , 如需指定命令 同样 -C /path/to/some_dir
# > tar -jxvf <需要解压的文件.tar.bz2>
 
> ls -F
dir.tar.bz2  video.mp4
> tar -jxvf dir.tar.bz2
dir/
dir/file2
dir/file1
> ls -F
dir/  dir.tar.bz2  video.mp4
> tree dir/
dir/
├── file1
└── file2
0 directories, 2 files
 
  • 同一文件使用不同压缩工具的比较
在这里, 我们看看对于同以文件, 使用不同的工具进行打包压缩的处理,效果如何.
# > 我们在这里模拟创建一些文件, 使测试目录的大小为1.2G
 
> dd if=/dev/zero of=file_5M bs=1M count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.00330545 s, 1.6 GB/s
> dd if=/dev/zero of=file_10M bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.00722154 s, 1.5 GB/s
> dd if=/dev/zero of=file_50M bs=1M count=50
50+0 records in
50+0 records out
52428800 bytes (52 MB) copied, 0.100913 s, 520 MB/s
> dd if=/dev/zero of=file_100M bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.205377 s, 511 MB/s
>
> dd if=/dev/zero of=file_1000M bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 11.5899 s, 90.5 MB/s
>
> ls -lh
total 1.2G
-rw-r--r-- 1 root root   10K Oct  3 10:54 file1
-rw-r--r-- 1 root root 1000M Oct  3 12:17 file_1000M
-rw-r--r-- 1 root root  100M Oct  3 12:17 file_100M
-rw-r--r-- 1 root root   10M Oct  3 12:16 file_10M
-rw-r--r-- 1 root root    16 Oct  2 23:21 file2
-rw-r--r-- 1 root root   50M Oct  3 12:17 file_50M
-rw-r--r-- 1 root root  5.0M Oct  3 12:16 file_5M
>
 
> # 先使用 zip 做测试 
> time zip -r compress.zip  dir/
  adding: dir/ (stored 0%)
  adding: dir/file2 (stored 0%)
  adding: dir/file_5M (deflated 100%)
  adding: dir/file_50M (deflated 100%)
  adding: dir/file_100M (deflated 100%)
  adding: dir/file_10M (deflated 100%)
  adding: dir/file_1000M (deflated 100%)
  adding: dir/file1 (deflated 99%)
real    0m16.237s
user    0m3.588s
sys    0m5.380s
 
 
> # 接着是 gzip
> time tar -zcvf compress.tar.gz dir/
dir/
dir/file2
dir/file_5M
dir/file_50M
dir/file_100M
dir/file_10M
dir/file_1000M
dir/file1
real    0m16.242s
user    0m7.764s
sys    0m1.956s
 
> # 最后是 bzip2
> time tar -jcvf compress.tar.bz2 dir/
dir/
dir/file2
dir/file_5M
dir/file_50M
dir/file_100M
dir/file_10M
dir/file_1000M
dir/file1
real    0m28.010s
user    0m16.940s
sys    0m2.137s

 

> # 我们再查看各个压缩文件的大小 
> ls -l compress.*
-rw-r--r-- 1 root root    1434 Oct  3 12:23 compress.tar.bz2
-rw-r--r-- 1 root root 1186140 Oct  3 12:21 compress.tar.gz
-rw-r--r-- 1 root root 1186932 Oct  3 12:20 compress.zip
> ls -lh compress.*
-rw-r--r-- 1 root root 1.5K Oct  3 12:23 compress.tar.bz2
-rw-r--r-- 1 root root 1.2M Oct  3 12:21 compress.tar.gz
-rw-r--r-- 1 root root 1.2M Oct  3 12:20 compress.zip
 
为了让上面的信息更加明朗, 我们使用列表进行一个统计
 
压缩/打包压缩命令 压缩的工具(版本号) 所花费的时间
文件的大小
zip -r compress.zip  dir/
zip (3.0)
16.237s
1186932(1.2M)
tar -zcvf compress.tar.gz dir/
gzip (1.3.12)
16.242s
1186140(1.2M)
tar -jcvf compress.tar.bz2 dir/
bzip2 (1.0.5)
28.010s
1434 (1.5K)
测试系统 2.6.32-696.6.3.e16.i686 / CentOS release 6.9(Final)
 
由上表,我们可以看出
从压缩时间: 我们可以看出, zip & gzip 时间相差是很小的 并且显著比 bzip2 用时短接近 42%
从压缩效率: 我们可以看出, bzip2的压缩率最高, 明显高于zip & gzip, 高出了一大截. 
这也表明了, 计算机中其中一大矛盾 , 性能 和 时间 二者是很难兼得的
 
 
 
  • 对zip gzip bzip2 信息总结
 
文件
命令工具
压缩文件公式
压缩后原文件是否保留
(保留命令公式)
解压文件公式
解压后原文件是否保留
(保留命令公式)
查看压缩文件内文件
zip
zip2 [file_need_compress]
保留
unzip [file_suffix.tar]
保留
unzip -v [file_suffix.tar]
gzip
gzip [file_need_compress]
不保留
gzip -c [file_need_compress] > [file_suffix.gz]
gzip -d  [file_suffix.gz]
不保留
gzip -cd  [file_suffix.gz]  > [file_name]
gzip -l  [file_suffix.gz]
bzip2
bzip2 [file_need_compress]
不保留
bzip2 -k [file_need_compress] 
bzip2 -d  [file_suffix.bz2]
不保留
bzip2 -dk  [file_suffix.bz2]
bzcat  [file_suffix.bz2]
可查看文件的内容
 
目录
 
命令工具
压缩目录
解压文件
查看文件
gzip
tar -zcvf [file_suffix.tar.gz] [file_need_compress&archive]
tar -zxvf [file_suffix.tar.gz] 
tar -tf [file_suffix.tar.gz]
bzip2
tar -jcvf [file_suffix.tar.bz2] [file_need_compress&archive]
tar -zxvf [file_suffix.tar.bz2]
tar -tf [file_suffix.tar.bz2]
 
 
参考网站:
http://m.hangge.com/news/cache/detail_1666.html Linux - zip压缩、unzip解压缩命令的使用详解
https://my.oschina.net/CandyMi/blog/688887      Linux 使用unzip命令解压其中的单个文件到指定文件夹
https://www.qcloud.com/community/article/164816001481011798 如何在 Linux 系统通过命令行生成随机文件

以上是关于[拾 得] zip gzip bzip2 & tar 压缩/打包 四大金刚的主要内容,如果未能解决你的问题,请参考以下文章

压缩工具gzip,bzip2,xz,zip,tar

压缩命令 gzip bzip2 xz zip

Linux打包压缩命令有哪些-zip,gzip,bzip2,tar

Linux下常用的压缩工具总结(gzip/tar/bzip2/zip)

Linux打包和压缩工具的使用

gzip,bzip2,xz压缩工具