欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux中压缩和解压缩指令

程序员文章站 2024-03-13 23:30:52
...

 

在Linux中常用的压缩和解压缩指令分别有zip,unzip,gzip,gunzip,bzip2,bunzip2

     压缩指令             解压缩指令             生成的压缩文件后缀
         zip          unzip                       .zip
        gzip         gunzip                       .gz
       bzip2         bunzip2                       .bz2

 

下面我们来分别介绍一下

zip和unzip

".zip"格式文件的压缩命令就是 zip,其基本信息如下。

  • 命令名称:zip。
  • 英文原意:package and compress(archive)files。
  • 所在路径:/usr/bin/zip。
  • 执行权限:所有用户。
  • 功能描述:压缩文件或目录。
[[email protected] ~]#zip [选项] 压缩包名 源文件或源目录
#其中选项最常见的就是
-r:压缩目录
#用来压缩目录

所有的压缩命令都可以同时压缩多个文件,例如:

[[email protected] ~]# zip test.zip install.log install.log.syslog
adding: install.log (deflated 72%)
adding: install.log.syslog (deflated 85%)
#同时压缩多个文件到test.zip压缩包中
[[email protected] ~]#ll test.zip
-rw-r--r-- 1 root root 8368 6月 1716:03 test.zip
#压缩文件生成


如果想要压缩目录,则需要使用"-r"选项,例如:

[[email protected] ~]# mkdir dir1
#建立测试目录
[[email protected] ~]# zip -r dir1.zip dir1
adding: dir1/(stored 0%)
#压缩目录
[[email protected] ~]# ls -dl dir1.zip
-rw-r--r-- 1 root root 160 6月 1716:22 dir1.zip
#压缩文件生成

".zip"格式的解压缩命令是 unzip,其基本信息如下:

  • 命令名称:unzip。
  • 英文原意:list, test and extract compressed files in a ZIP archive。
  • 所在路径:/usr/bin/unzip.
  • 执行权限:所有用户。
  • 功能描述:列表、测试和提取压缩文件中的文件。
[[email protected] ~]# unzip [选项] 压缩包名

选项:
-d: 指定解压缩位置

不论是文件压缩包,还是目录压缩包,都可以直接解压缩,例如:

[[email protected] ~]# unzip dir1.zip
Archive: dir1.zip
creating: dirl/
#解压缩


也可以手工指定解压缩位置,例如:

[[email protected] ~]# unzip -d /tmp/ ana.zip
Archive: ana.zip
inflating: /tmp/anaconda-ks.cfg
#把压缩包解压到指定位置

gzip和gunzip

".gz"格式是 Linux 中最常用的压缩格式,使用 gzip 命令进行压缩,其基本信息如下:

  • 命令名称:gzip。
  • 英文原意:compress or expand files。
  • 所在路径:/bin/gzip。
  • 执行权限:所有用户。
  • 功能描述:压缩文件或目录。
[[email protected] ~]# gzip [选项] 源文件

选项:
-c:将压缩数据输出到标准输出中,可以用于保留源文件;
-d:解压缩;
-r:压缩目录;
-v:显示压缩文件的信息;
-数字:用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高。默认压缩比是 -6;

保留源文件压缩。
在使用 gzip 命令压缩文件时,源文件会消失,从而生成压缩文件。如果在压缩文件的时候,不让源文件消失,那么可以利用重定向。

[[email protected] ~]# gzip -c anaconda-ks.cfg >anaconda-ks.cfg.gz
#使用-c选项,但是不让压缩数据输出到屏幕上,而是重定向到压缩文件中,#这样可以缩文件的同时不删除源文件
[[email protected] ~]# ls
anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog
#可以看到压缩文件和源文件都存在

 压缩目录。
我们可能会想当然地认为 gzip 命令可以压缩目录。 我们来试试:

[[email protected] ~]# mkdir test
[[email protected] ~]# touch test/test1
[[email protected] ~]# touch test/test2
[[email protected] ~]# touch test/test3 #建立测试目录,并在里面建立几个测试文件
[[email protected] ~]# gzip -r test/
#压缩目录,并没有报错
[[email protected] ~]# ls
anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog test
#但是査看发现test目录依然存在,并没有变为压缩文件
[[email protected] ~]# ls test/
testl .gz test2.gz test3.gz
#原来gzip命令不会打包目录,而是把目录下所有的子文件分别压缩

在 Linux 中,打包和压缩是分开处理的。而 gzip 命令只会压缩,不能打包,所以才会出现没有打包目录,而只把目录下的文件进行压缩的情况。

".gz"格式是 Linux 中最常用的压缩格式,如果要解压缩".gz"格式,那么使用"gzip-d压缩包"和"gunzip 压缩包"命令都可以。

我们先看看 gunzip 命令的基本信息。

  • 命令名称:gunzip。
  • 英文原意:compress or expand files。
  • 所在路径:/bin/gunzip。
  • 执行权限:所有用户。
  • 功能描述:解压缩文件或目录。

常规用法就是直接解压缩文件,例如:

[[email protected] ~]# gunzip install.log.gz

如果要解压缩目录下的内容,则依然使用"-r"选项,例如:

[[email protected] ~]# gunzip -r test/

当然,"gunzip -r"依然只会解压缩目录下的文件,而不会解打包。要想解压缩".gz"格式,还可以使用 "gzip -d"命令,例如:

[[email protected] ~]# gzip -d anaconda-ks.cfg.gz

查看".gz"格式压缩的文本文件内容

如果我们压缩的是一个纯文本文件,则可以直接使用 zcat 命令在不解压缩的情况下査看这个文本文件中的内容。例如:

 [[email protected] ~]# zcat anaconda-ks.cfg.gz

bzip2和bunzip2

".bz2"格式是 Linux 的另一种压缩格式,从理论上来讲,".bz2"格式的算法更先进、压缩比更好;而 ".gz"格式相对来讲的时间更快。
".bz2"格式的压缩命令是 bzip2,我们来看看这个命令的基本信息。

  • 命令名称:bzip2。
  • 英文原意:a block-sorting file compressor。
  • 所在路径:/usr/bin/bzip2。
  • 执行权限:所有用户。
  • 功能描述:.bz格式的压缩命令。
[[email protected] ~]# bzip2 [选项] 源文件

选项:
-d:解压缩。
-k:压缩时,保留源文件。
-v:显示压缩的详细信息。
-数字:这个参数和 gzip 命令的作用一样,用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高。

".bz2"格式可以使用"bzip2 -d 压缩包"命令来进行解压缩,也可以使用"bunzip2 压缩包"命令来进行解压缩。

先看看 bunzip2 命令的基本信息。

  • 命令名称:bunzip2。
  • 英文原意:a block-sorting file compressor。
  • 所在路径:/usr/bin/bunzip2。
  • 执行权限:所有用户。
  • 功能描述:.bz2格式的解压缩命令。
[[email protected] ~]# bunzip2 [选项] 源文件

选项:

-k:解压缩时,保留源文件


先试试使用 gunzip2 命令来进行解压缩,例如:

[[email protected] ~]# bunzip2 anaconda-ks.cfg.bz2

".bz2"格式也可以使用"bzip2 -d 压缩包"命令来进行解压缩,例如:

[[email protected] ~]# bzip2 -d install.log.syslog.bz2

査看".bz2"格式压缩的文本文件内容

和".gz"格式一样,".bz2"格式压缩的纯文本文件也可以不解压缩直接査看,使用的命令是 bzcat。例如:

[[email protected] ~]# bzcat install.log.syslog.bz2