Skip to content
KARINKARIN
博客主页
项目总览
知识要点
捣鼓折腾
Git笔记
Excel修炼秘籍
github icon
  • 博客主页
    • 项目总览
          • linux介绍
            • linux的管理建议
              • linux文件系统结构
                • linux基本操作命令
                  • linux权限管理命令
                    • linux帮助命令
                      • linux搜索命令
                        • linux压缩、解压缩命令
                          • 压缩文件介绍
                            • .zip 格式
                              • 压缩命令 zip
                                • 解压缩命令 unzip
                                • .gz 格式
                                  • 压缩命令 gzip
                                    • 解压缩命令 gunzip 或 gzip -d
                                      • 查看压缩的文本文件内容 zcat
                                      • .bz2 格式
                                        • 压缩命令 bzip2
                                          • 解压缩命令 bunzip2 或 bzip2 -d
                                            • 查看压缩的文本文件内容 bzcat
                                            • .xz 格式
                                              • 压缩命令 xz
                                                • 解压缩命令 xz -d
                                                • .tar 格式
                                                  • 打包命令 tar -cvf
                                                    • 解打包命令 tar -xvf
                                                    • .tar.gz 、 .tar.bz2 、.tar.xz 格式
                                                      • 压缩与解压缩 .tar.gz 格式
                                                        • 压缩与解压缩 .tar.bz2 格式
                                                          • 压缩与解压缩 .tar.xz 格式
                                                        • linux关机和重启命令
                                                          • linux常用网络命令
                                                            • linux文本编辑器
                                                              • linux软件安装
                                                                • linux用户和用户组管理
                                                                  • linux其他权限管理命令
                                                                    • linux文件系统管理

                                                                  linux压缩、解压缩命令

                                                                  author iconkarincalendar icon2021年5月6日category icon
                                                                  • 笔记
                                                                  tag icon
                                                                  • linux
                                                                  timer icon大约 13 分钟

                                                                  此页内容
                                                                  • 压缩文件介绍
                                                                  • .zip 格式
                                                                    • 压缩命令 zip
                                                                    • 解压缩命令 unzip
                                                                  • .gz 格式
                                                                    • 压缩命令 gzip
                                                                    • 解压缩命令 gunzip 或 gzip -d
                                                                    • 查看压缩的文本文件内容 zcat
                                                                  • .bz2 格式
                                                                    • 压缩命令 bzip2
                                                                    • 解压缩命令 bunzip2 或 bzip2 -d
                                                                    • 查看压缩的文本文件内容 bzcat
                                                                  • .xz 格式
                                                                    • 压缩命令 xz
                                                                    • 解压缩命令 xz -d
                                                                  • .tar 格式
                                                                    • 打包命令 tar -cvf
                                                                    • 解打包命令 tar -xvf
                                                                  • .tar.gz 、 .tar.bz2 、.tar.xz 格式
                                                                    • 压缩与解压缩 .tar.gz 格式
                                                                    • 压缩与解压缩 .tar.bz2 格式
                                                                    • 压缩与解压缩 .tar.xz 格式

                                                                  # 压缩文件介绍

                                                                  在系统中,如果需要有大量的文件进行复制和保存,那么把它们打成压缩包是不错的选择。打包压缩作为常规操作,在 Windows 和 Linux 中都比较常见。Windows 中常见的压缩包格式主要有“.zip”、“.rar”和“.7z”等,但是你了解这些不同压缩格式的区别吗?其实,普通用户并不用理解这些压缩格式的算法有什么区别、压缩比有哪些不同,只要在碰到这些压缩包时会正确地解压缩,在想要压缩时可以正确地操作,目的就达到了。

                                                                  在 Limux 中也是一样的,可以识别的常见压缩格式有十几种,比如 “.zip”、“.gz”、“.bz2”、“.tar”、“.tar.gz” 压缩等。我们也不需要知道这些压缩格式的具体区别,只要对应的压缩包会解压缩、想要压缩的时候会操作即可。

                                                                  还有一件事,之前一直强调“Linux 不靠扩展名区分文件类型,而是靠权限”,那压缩包也不应该医分扩展名啊?为什么还要区分是“.gz”还是“.bz2”的扩展名呢?这是因为,在 Linux 中,不同的压缩方法对应的解压缩方法也是不同的,这里的扩展名并不是 Linux 系统一定需要的(Linux 不区分扩展名),而是用来给用户标识压缩格式的。只有知道了正确的压缩格式,才能采用正确的解压缩命令。

                                                                  大家可以想象一下,如果你压缩了一个文件,起了一个名字“abc”,今天你知道这是一个压缩包,可以解压缩,那半年之后呢?而如果你将它命名为“etc_bak.tar.gz”,那无论什么时 候、无论哪个用户都知道这是/etc/目录的备份压缩包。所以压缩文件一定要严格区分扩展名,这不是系统必需的,而是用来让管理员区分文件类型的。

                                                                  # .zip 格式

                                                                  “.zip”是 Windows 中最常用的压缩格式,Linux 也可以正确识别“.zip”格式,这可以方便地和 Windows 系统通用压缩文件。

                                                                  # 压缩命令 zip

                                                                  压缩命令就是 zip, 命令格式如下:

                                                                  [root@localhost ~]# zip [选项] 压缩包名 源文件或源目录
                                                                  选项:
                                                                  	-r	:压缩目录
                                                                  
                                                                  1
                                                                  2
                                                                  3

                                                                  zip 压缩命令需要手工指定压缩之后的压缩包名,注意写清楚扩展名,以方便解压缩时使用。举个例子:

                                                                  [root@localhost ~]# zip ana.zip anaconda-ks.cfg
                                                                  adding: anaconda-ks.cfg (deflated 37%) 
                                                                  #压缩
                                                                  [root@localhost ~]# ll ana.zip
                                                                  -rw-r--r-- 1 root root 935 6月 17 16:00 ana.zip
                                                                  #压缩文件生成
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6

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

                                                                  [rootelocalhost ~]# zip test.zip install.log install.log.syslog
                                                                  adding: install.log (deflated 72%)
                                                                  adding: install.log.syslog (deflated 85%)
                                                                  #同时压缩多个文件到 test.zip 压缩包中
                                                                  [root@localhost ~]# ll test.zip
                                                                  -rw-r--r-- 1 root root 8368 6月 17 16:03 test.zip
                                                                  #压缩文件生成
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6
                                                                  7

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

                                                                  [root@localhost ~]# mkdir dir1
                                                                  #建立测试目录
                                                                  [root@localhost ~]# zip -r dir1.zip dir1
                                                                  adding: dir1/(stored 0g)
                                                                  #压缩目录
                                                                  [root@localhost ~]# ls -dl dir1.zip
                                                                  -rw-r--r-- 1 root root 160 6月 17 16:22 dir1.zip
                                                                  #压缩文件生成 
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6
                                                                  7
                                                                  8

                                                                  # 解压缩命令 unzip

                                                                  “.zip”格式的解压缩命令是 unzip,命令格式如下:

                                                                  [root@localhost ~]# unzip [选项] 压缩包名
                                                                  选项:
                                                                  	-d	:指定解压缩位置 
                                                                  
                                                                  1
                                                                  2
                                                                  3

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

                                                                  [root@localhost ~]# unzip dir1.zip
                                                                  Archive: dir1.zip creating: dir1/
                                                                  #解压缩
                                                                  
                                                                  1
                                                                  2
                                                                  3

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

                                                                  [root@localhost ~]# unzip -d /tmp/ ana.zip
                                                                  Archive: ana.zip inflating:/tmp/anaconda-ks.cfg
                                                                  #把压缩包解压到指定位置
                                                                  
                                                                  1
                                                                  2
                                                                  3

                                                                  # .gz 格式

                                                                  “.gz”格式是 Linux 中最常用的压缩格式。

                                                                  # 压缩命令 gzip

                                                                  使用 gzip 命令进行压缩,命令的格式如下:

                                                                  [root@localhost ~]# gzip [选项] 源文件
                                                                  选项:
                                                                  	-c		:将压缩数据输出到标准输出中,可以用于保留源文件
                                                                      -d		:解压缩
                                                                      -r		:压缩目录
                                                                      -v		:显示压缩文件的信息
                                                                      -数字	:用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高。默认压缩比是 -6 
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6
                                                                  7
                                                                  • 基本压缩

                                                                  gzip 压缩命令非常简单,甚至不需要指定压缩之后的压缩包名,只需指定源文件名即可。 我们来试试:

                                                                  [root@localhost ~]# gzip install.log
                                                                  #压缩 install.log 文件
                                                                  [root@localhost ~]# ls
                                                                  anaconda-ks.cfg install.log.gz install.log.syslog
                                                                  #压缩文件生成,但是源文件也消失了
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  • 保留源文件压缩

                                                                  在使用 gzip 命令压缩文件时,源文件会消失,从而生成压缩文件。这时有些人会有强迫症,就会问:能不能在压缩文件的时候,不让源文件消失?好吧,也是可以的,不过很别扭。

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

                                                                  我们可能会想当然地认为 gzip 命令可以压缩目录。(其实是分别压缩目录里的所有文件)我们来试试:

                                                                  [root@localhost ~]# mkdir test
                                                                  [root@localhost ~]# touch test/test1
                                                                  [root@localhost ~]# touch test/test2
                                                                  [root@localhost ~]# touch test/test3
                                                                  #建立测试目录,并在里面建立几个测试文件
                                                                  [root@localhost ~]# gzip -r test/
                                                                  #压缩目录,并没有报错
                                                                  [root@localhost ~]# ls
                                                                  anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog test
                                                                  #但是查看发现 test 目录依然存在,并没有变为压缩文件
                                                                  [root@localhost ~]# ls test/
                                                                  test1.gz test2.gz test3.gz
                                                                  #原来 gzip 命令不会打包目录,而是把目录下所有的子文件分别压缩
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6
                                                                  7
                                                                  8
                                                                  9
                                                                  10
                                                                  11
                                                                  12
                                                                  13

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

                                                                  # 解压缩命令 gunzip 或 gzip -d

                                                                  如果要解压缩“.gz”格式,那么使用 gzip -d 压缩包 和 gunzip 压缩包 命令都可以。

                                                                  • gunzip 命令,格式如下:
                                                                  [root@localhost ~]# gunzip [选项] 压缩文件
                                                                  选项:
                                                                  	-r	:解压缩目录
                                                                  
                                                                  1
                                                                  2
                                                                  3

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

                                                                  [root@localhost ~]# gunzip install.log.gz
                                                                  
                                                                  1

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

                                                                  [root@Localhost ~]# gunzip -r test/ 
                                                                  
                                                                  1

                                                                  当然,gunzip -r依然只会解压缩目录下的文件,而不会解打包。

                                                                  • gzip -d 命令,例如:
                                                                  [root@localhost ~]# gzip -d anaconda-ks.cfg.gz
                                                                  
                                                                  1

                                                                  # 查看压缩的文本文件内容 zcat

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

                                                                  [root@localhost ~]# zcat 压缩文件
                                                                  
                                                                  1

                                                                  例如:

                                                                  [root@Localhost ~]# zcat anaconda-ks.cfg.gz
                                                                  
                                                                  1

                                                                  # .bz2 格式

                                                                  “.bz2”格式是 Linux 的另一种压缩格式,从理论上来讲,“.bz2”格式的算法更先进、压 缩比更好;而“.gz”格式相对来讲压缩的时间更快。

                                                                  # 压缩命令 bzip2

                                                                  “.bz2”格式的压缩命令是 bzip2,命令的格式:

                                                                  [root@Localhost ~]# bzip2 [选项] 源文件
                                                                  选项:
                                                                  	-d		:解压缩
                                                                      -k		:压缩时,保留源文件
                                                                      -v		:显示压缩的详细信息
                                                                      -数字	:这个参数和 gzip 命令的作用一样,用于指定压缩等级,-1 压缩等级最低, 压缩比最差;-9 压缩比最高
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6

                                                                  大家注意,gzip 只是不会打包目录,但是如果使用“-r”选项,则可以分别压缩目录下的每个文件;而 bzip2 命令则根本不支持压缩目录,也没有“-r”选项。

                                                                  • 基本压缩命令

                                                                  在压缩文件命令后面直接指定源文件即可,例如:

                                                                  [root@localhost ~]# bzip2 anaconda-ks.cfg
                                                                  #压缩成“.bz2”格式 
                                                                  
                                                                  1
                                                                  2

                                                                  这个压缩命令依然会在压缩的同时删除源文件。

                                                                  • 压缩的同时保留源文件

                                                                  bzip2 命令可以直接使用“-k”选项来保留源文件,而不用像 gzip 命令一样使用输出重定向来保留源文件。例如:

                                                                  [root@localhost ~]# bzip2 -k install.log.syslog
                                                                  #压缩
                                                                  [root@localhost ~]# ls
                                                                  anaconda-ks.cfg.bz2 install.log install.log.syslog install.log.syslog.bz2
                                                                  #压缩文件和源文件都存在 
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5

                                                                  # 解压缩命令 bunzip2 或 bzip2 -d

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

                                                                  • bunzip2 命令,格式如下:
                                                                  [root@localhost ~]# bunzip2 [选项] 源文件
                                                                  选项:
                                                                  	-k	:解压缩时,保留源文件 
                                                                  
                                                                  1
                                                                  2
                                                                  3

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

                                                                  [root@localhost ~]# bunzip2 anaconda-ks.cfg.bz2
                                                                  
                                                                  1
                                                                  • bzip2 -d 压缩包 命令,例如:
                                                                  [root@localhost ~]# bzip2 -d install.log.syslog.bz2
                                                                  
                                                                  1

                                                                  # 查看压缩的文本文件内容 bzcat

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

                                                                  [root@localhost ~]# bzcat install.log.syslog.bz2
                                                                  
                                                                  1

                                                                  # .xz 格式

                                                                  “.xz”格式是一个压缩率非常高的压缩格式,xz 命令是绝大数 Linux 默认就带的一个压缩工具,压缩率很高。只能压缩文件,不能压缩目录。现在大部分的系统镜像文件都是用此格式压缩。

                                                                  # 压缩命令 xz

                                                                  “.xz”格式的压缩命令是 xz,命令的格式:

                                                                  [root@localhost ~]# xz [选项] 文件名
                                                                  选项:
                                                                  	-d		:解压缩
                                                                  	-k		:压缩时保留源文件
                                                                  	-t		:测试压缩文件的完整性
                                                                  	-数字	:指定压缩比。默认是6,数字越大压缩比就越大(1-9)
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6

                                                                  例子:

                                                                  [root@localhost ~]# cd /tmp/
                                                                  [root@localhost tmp]# cp /var/log/messages ./
                                                                  #复制 /var/log/messages 文件到当前 /tmp/ 目录下
                                                                  [root@localhost tmp]# xz messages
                                                                  # xz 命令压缩 messages 文件
                                                                  [root@localhost tmp]# ll -h
                                                                  total 4.0K
                                                                  -rw------- 1 root root 3.6K Feb 25 17:00 messages.xz
                                                                  #生成压缩文件 messages.xz
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6
                                                                  7
                                                                  8
                                                                  9

                                                                  再比如:

                                                                  [root@localhost tmp]# xz -k messages
                                                                  # xz -k 命令压缩 messages 文件
                                                                  [root@localhost tmp]# ll -h
                                                                  total 100K
                                                                  -rw------- 1 root root  95K Feb 25 17:00 messages
                                                                  -rw------- 1 root root 3.6K Feb 25 17:00 messages.xz
                                                                  #生成压缩文件 messages.xz,且源文件仍存在
                                                                  # 95K大小的文件,压缩后仅有3.6K,压缩高的不敢相信,但这是真的
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6
                                                                  7
                                                                  8

                                                                  # 解压缩命令 xz -d

                                                                  “.xz”格式的解压缩没有单独的命令,还是 xz,命令的格式:xz -d 压缩文件,看个例子:

                                                                  [root@localhost tmp]# xz -d messages.xz 
                                                                  # xz -d 解压缩
                                                                  [root@localhost tmp]# ll -h
                                                                  total 96K
                                                                  -rw------- 1 root root 95K Feb 25 17:00 messages
                                                                  #xz 解压后,直接删除原压缩文件
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6

                                                                  # .tar 格式

                                                                  通过前面的学习,我们发现,不论是 gzip 命令还是 bzip2 命令,好像都比较笨,gzip 命令不能打包目录,而只能单独压缩目录下的子文件;bzip2 命令干脆就不支持目录的压缩。 在 Limux 中,对打包和压缩是区别对待的。也就是说,在 Linux 中,如果想把多个文件或 目录打包到一个文件包中,则使用的是 tar 命令;而压缩才使用 gzip 或 bzip2 命令。

                                                                  # 打包命令 tar -cvf

                                                                  “.tar”格式的打包和解打包都使用 tar 命令,区别只是选项不同。我们先看看 tar 命令的格式:

                                                                  [root@localhost tmp]# tar [选项] [-f 压缩包名] 源文件或目录
                                                                  选项:
                                                                  	-c	:打包
                                                                  	-f	:指定压缩包的文件名。建议一定要指定正确的指定扩展名。
                                                                      -v	:显示打包文件过程
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  • 基本用法

                                                                  我们先打包一个文件练练手。

                                                                  [root@localhost ~]# tar -cvf anaconda-ks.cfg.tar anaconda-ks.cfg
                                                                  #把 anaconda-ks.ctg 打包为 anaconda-ks.cfg.tar 文件包
                                                                  
                                                                  1
                                                                  2

                                                                  选项“-cvf”一般是习惯用法,记住打包时需要指定打包之后的文件名,而且要用“.tar” 作为扩展名。那打包目录呢?我们也试试:

                                                                  [root@localhost ~]# ll -d test/
                                                                  drwxr-xr-x 2 root root 4096 6月 17 21:09 test/
                                                                  #test 是我们之前的测试目录
                                                                  [root@localhost ~]# tar -cvf test.tar test/
                                                                  test/
                                                                  test/test3
                                                                  test/test2
                                                                  test/testl
                                                                  #把目录打包为 test.tar 文件包
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6
                                                                  7
                                                                  8
                                                                  9

                                                                  tar 命令也可以打包多个文件或目录,只要用空格分开即可。例如:

                                                                  [root@localhost ~]# tar -cvf ana.tar anaconda-ks.cfg /tmp/
                                                                  #把 anaconda-ks.cfg 文件和 /tmp 目录打包成 ana.tar 文件包 
                                                                  
                                                                  1
                                                                  2
                                                                  • 打包压缩目录

                                                                  我们已经解释过了,压缩命令不能直接压缩目录,我们就先用 tar 命令把目录打成数据包,然后再用 gzip 命令或 bzip2 命令压缩。例如:

                                                                  [root@localhost ~]# ll -d test test.tar
                                                                  drwxr-xr-x 2 root root 4096 6月 17 21:09 test
                                                                  -rw-r--r-- 1 root root 10240 6月 18 01:06 test.tar
                                                                  #我们之前已经把 test 目录打包成 test.tar 文件包
                                                                  [root@localhost ~]# gzip test.tar
                                                                  [root@localhost ~]# ll test.tar.gz
                                                                  -rw-r--r-- 1 root root 176 6月 18 01:06 test.tar.gz
                                                                  # gzip 命令会把 test.tar 压缩成 test.tar.gz
                                                                  [root@localhost ~]# gzip -d test.tar.gz
                                                                  #解压缩,把 test.tar.gz 解压为 test.tar
                                                                  [root@localhost ~]# bzip2 test.tar
                                                                  [root@localhost ~]# ll test.tar.bz2
                                                                  -rw-r--r-- 1 root root 164 6月 18 01:06 teat.tar.bz2
                                                                  #bzip2命令会把 test.tar 压缩为 test.tar.bz2 格式 
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6
                                                                  7
                                                                  8
                                                                  9
                                                                  10
                                                                  11
                                                                  12
                                                                  13
                                                                  14

                                                                  # 解打包命令 tar -xvf

                                                                  “.tar”格式的解打包也需要使用 tar 命令,但是选项不太一样。命令格式如下:

                                                                  [root@localhost ~]# tar [选项] 压缩包
                                                                  选项:
                                                                  	-x		:解打包
                                                                      -f		:指定压缩包的文件名
                                                                      -v		:显示解打包文件过程
                                                                      -t		:测试,不是解打包,只是查看包中有哪些文件
                                                                      -C 目录	:指定解打包位置
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6
                                                                  7

                                                                  其实解打包和打包相比,只是把打包选项“-cvf”更换为“-xvf”。我们来试试:

                                                                  [root@localhost ~]# tar -xvf anaconda-ks.cfg.tar
                                                                  #解打包到当前目录下
                                                                  
                                                                  1
                                                                  2

                                                                  如果使用“-xvf”选项,则会把包中的文件解压到当前目录下。如果想要指定解压位置,则需要使用“-C(大写)”选项。例如:

                                                                  [root@localhost ~1# tar -xvf test.tar -C /tmp
                                                                  #把文件包 test.tar 解打包到 /tmp/ 目录下 
                                                                  
                                                                  1
                                                                  2

                                                                  如果只想查看文件包中有哪些文件,则可以把解打包选项“-x”更换为测试选项“-t”。例如:

                                                                  [root@localhost -]# tar -tvf test.tar
                                                                  drwxr-xr-x root/root 0 2016-06-17 21:09 test/
                                                                  -rw-r--r-- root/root 0 2016-06-17 17:51 test/test3
                                                                  -rw-r--r-- root/root 0 2016-06-17 17:51 test/test2
                                                                  _rw-r--r-- root/root 0 2016-06-17 17:51 test/testi 
                                                                  #会用长格式显示 test.tar 文得包中文件的详網信息
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6

                                                                  # .tar.gz 、 .tar.bz2 、.tar.xz 格式

                                                                  你可能会觉得 Linux 实在太不智能了,一个打包压缩,居然还要先打包成“.tar”格式,再压缩成“.tar.gz”或“.tar.bz2”格式。其实 tar命令是可以同时打包压缩的,前面的讲解之所以把打包和压缩分开,是为了让大家了解在 Linux 中打包和压缩的不同。

                                                                  使用 tar 命令直接打包压缩。命令格式如下:

                                                                  [root@localhost -]# tar [选项] 压缩包 源文件或目录
                                                                  选项:
                                                                  	-z	:压缩和解压缩 “.tar.gz” 格式
                                                                  	-j	:压缩和解压缩 “.tar.bz2” 格式
                                                                  	-J	:压缩和解压缩 “.tar.xz” 格式
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5

                                                                  # 压缩与解压缩 .tar.gz 格式

                                                                  我们先来看看如何压缩“.tar.gz”格式。

                                                                  [root@localhost ~]# tar -zcvf tmp.tar.gz /tmp/
                                                                  #把 /tmp/ 目录直接打包压缩为“.tar.gz”格式,通过“-z”来识别格式,“-cvf”和打包选项一致
                                                                  
                                                                  1
                                                                  2

                                                                  解压缩也只是在解打包选项“-xvf”前面加了一个“-z”选项。

                                                                  [root@localhost ~]# tar -zxvf tmp.tar.gz
                                                                  #解压缩与解打包“.tar.gz”格式
                                                                  
                                                                  1
                                                                  2

                                                                  前面讲的选项“-C”用于指定解压位置、“-t”用于查看压缩包内容,在这里同样适用。

                                                                  # 压缩与解压缩 .tar.bz2 格式

                                                                  和“.tar.gz”格式唯一的不同就是“-z”选项换成了“-j”。

                                                                  [root@localhost ~]# tar -jcvf tmp.tar.bz2 /tmp/
                                                                  #打包压缩为“.tar.bz2”格式,注意压缩包文件名
                                                                  [root@localhost ~]# tar -jxvf tmp.tar.bz2
                                                                  #解压缩与解打包“.tar.bz2”格式
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4

                                                                  # 压缩与解压缩 .tar.xz 格式

                                                                  和“.tar.gz”格式唯一的不同就是“-z”选项换成了“-J”(大写的 J ,与“.tar.bz2”的小写的 j 不要混淆)。

                                                                  [root@localhost ~]# tar -Jcvf tmp.tar.xz /tmp/
                                                                  #打包压缩为“.tar.xz”格式,注意压缩包文件名
                                                                  [root@localhost ~]# tar -Jxvf tmp.tar.xz
                                                                  #解压缩与解打包“.tar.bz2”格式
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4

                                                                  把文件直接压缩成“.tar.gz”、“.tar.bz2”和“.tar.xz”格式,才是 Linux 中最常用的压缩方式,这是大家一定要掌握的压缩和解压缩方法。

                                                                  edit icon编辑此页open in new window
                                                                  上一页
                                                                  linux搜索命令
                                                                  下一页
                                                                  linux关机和重启命令
                                                                  MIT Licensed
                                                                  Copyright © 2022 karin