Linux系统下常用的压缩解压缩命令

1、tar

(1)作用:linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件

(2)语法:tar(选项)(参数)

     选项:-c 打包 创建打包文件(归档)

           -f 指定打包的文件名(-f 和filename 必须放在一起)

           -r 将文件追加至归档文件中

           -t 不解压的情况下直接查看归档文件里面的内容

-v 显示解压缩过程

           -x 执行解压缩、通常和-v(显示解压缩过程) -f结合使用

-C 解压到指定目录下

--exclude=File   打包时排除File这个文件

[root@localhost ~]# tar -cf dayi123.tar dayi123   #将目录dayi123打包

[root@localhost ~]# tar -rf dayi123.tar baoding.log #baoding.log追加到dayi123.tar

[root@localhost ~]# tar -xvf dayi123.tar          #解包

dayi123/

dayi123/messages-20170405

dayi123/test

dayi123/instll.log

dayi123/sn.txt

baoding.log

2、compress

(1)作用:使用“Lempress-Ziv”编码压缩数据文件。compress是个历史悠久的压缩程序,文件经它压缩后,其名称后面会多出".Z"的扩展名

(2)语法:compress [-dfvcVr] [-b maxbits] [file ...]

选项:-d: 解压缩,相当于uncompress

-c: 结果输出至标准输出,不删除原文件

-v: 显示详情

      zcat file.Z 直接查看压缩文件的内容不用先解压

 [root@dayi123 ~]# compress 1.txt   #compress压缩,会删除原文件

[root@dayi123 ~]# compress -d 1.txt #解压缩

[root@dayi123 ~]# compress -c messages > messages.Z  #压缩,不会删除原文件

[root@dayi123 ~]# zcat messages   #不解压,查看原文件中内容

Apr  5 10:38:21 dayi123 kernel: SRAT: PXM 0 -> APIC 36 -> Node 0

Apr  5 10:38:21 dayi123 kernel: SRAT: PXM 0 -> APIC 38 -> Node 0

Apr  5 10:38:21 dayi123 kernel: SRAT: PXM 0 -> APIC 40 -> Node 0

Apr  5 10:38:21 dayi123 kernel: SRAT: PXM 0 -> APIC 42 -> Node 0

3、gzip

(1)作用:gzip命令用来压缩文件。是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。

(2)语法:gzip [OPTION]... FILE ...

选项 –d: 解压缩,相当于gunzip

-c: 将压缩或解压缩的结果输出至标准输出

-#:1-9,指定压缩比,值越大压缩比越大

 [root@dayi123 ~]# gzip messages       

[root@dayi123 ~]# ll messages.gz

-rw-r--r--. 1 root root 55384 Apr  7 22:21 messages.gz

[root@dayi123 ~]# gzip -9 messages

[root@dayi123 ~]# ll messages.gz

-rw-r--r--. 1 root root 54777 Apr  7 22:21 messages.gz

(4)gzip配合tar打包压缩使用

    1)打包压缩:tar –zcf filename.tar.gz filename

                 tar –zcvf filename.tar.gz filename

2)解压缩:  tar –xzf filename.tar.gz filename

                 tar –xzvf filename.tar.gz filename

 [root@dayi123 ~]# tar -zcvf dayi123.tar.gz dayi123   #打包压缩

dayi123/

dayi123/messages-20170405

dayi123/test

dayi123/instll.log

dayi123/sn.txt

[root@dayi123 ~]# tar -xzvf dayi123.tar.gz      #解压缩

dayi123/

dayi123/messages-20170405

dayi123/test

dayi123/instll.log

dayi123/sn.txt

3、bzip2

(1)作用:bzip2命令用于创建和管理(包括解压缩)“.bz2”格式的压缩包

(2)语法:bzip2(选项)(参数)

常用选项:-k 保留源文件

          -d 解压缩相当于 bunzip2

          -# 指定压缩比

bzcat file   

 [root@dayi123 ~]# bzip2 instll.log     #普通压缩

[root@dayi123 ~]# ll instll.log*

-rwxr-xr--. 1 root root 14 Mar 31 09:15 instll.log.bz2

[root@dayi123 ~]# bzip2 -d instll.log.bz2  #解压

[root@dayi123 ~]# bzip2 -k instll.log      #压缩并保留源文件

[root@dayi123 ~]# ll instll.log*

-rwxr-xr--. 1 root root  0 Mar 31 09:15 instll.log

-rwxr-xr--. 1 root root 14 Mar 31 09:15 instll.log.bz2

[root@dayi123 ~]# bzcat instll.log.bz2     #不解压直接查看文件内容

hahahahhahahh

4)bzip2配合tar打包压缩

    1)打包压缩:tar –jcf filename.tar.bz2 filename

                 tar –jcvf filename.tar.bz2 filename

2)解压缩:  tar –xjf filename.tar.bz2 filename

                 tar –xjvf filename.tar.bz2 filename

 [root@dayi123 ~]# tar -jcvf dayi123.tar.gz dayi123   #打包压缩

dayi123/

dayi123/messages-20170405

dayi123/test

dayi123/instll.log

dayi123/sn.txt

[root@dayi123 ~]# tar -xjf dayi123.tar.gz      #解压缩

4、xz

(1)作用:压缩命令,压缩的更彻底

(2)用法:xz [OPTION]... FILE ...

      参数:-k 保留源文件

           -d 执行解压缩

           -# 指定压缩比

     xzcat 直接查看压缩文件内容

 [root@dayi123 ~]# xz instll.log    #压缩

[root@dayi123 ~]# xz -d instll.log.xz #解压

[root@dayi123 ~]# xz -k instll.log   #压缩时保留源文件             

[root@dayi123 ~]# xzcat instll.log.xz #直接查看压缩文件中的内容

hahahahhahahh

(4)xz结合tar打包压缩

    1)打包压缩:tar –Jcf filename.tar.xz filename

                 tar –jcvf filename.tar.xz filename

2)解压缩:  tar –xJf filename.tar.xz filename

                 tar –xJvf filename.tar.xz filename

[root@dayi123 ~]# tar -Jcf dayi123.tar.xz dayi123   #打包并压缩

[root@dayi123 ~]# tar -Jxvf dayi123.tar.xz dayi123  #解压缩,显示详细过程

dayi123/

dayi123/messages-20170405

dayi123/test

dayi123/instll.log

dayi123/sn.txt

[root@dayi123 ~]# tar --exclude=messages-20170405 -Jxvf dayi123.tar.xz dayi123 

#打包压缩时排除messages-20170405文件

dayi123/

dayi123/test

dayi123/instll.log

dayi123/sn.txt

5、zip

(1)作用:zip命令可以用来解压缩文件,或者对文件进行打包操作

(2)语法:zip(选项)(参数)

常用参数:-r 递归压缩

                     -p 将压缩结果输出屏幕上

unzip 解压缩

[root@dayi123 ~]# zip dayi123.zip dayi123    #对目录进行压缩

  adding: dayi123/ (stored 0%)

[root@dayi123 ~]# ll dayi123.zip

-rw-r--r--. 1 root root 166 Apr  7 21:14 dayi123.zip

[root@dayi123 ~]# zip sn.txt.zip sn.txt        #对文件压缩

  adding: sn.txt (deflated 21%)

[root@dayi123 ~]# ll sn.txt

-rw-r--r--. 1 root root 257 Mar 29 07:38 sn.txt

[root@dayi123 ~]# unzip dayi123.zip         #解压

Archive:  dayi123.zip

   creating: dayi123/

6、cpio

(1)作用:cpio是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件。

(2)语法:cpio [选项] > 文件名或者设备名

cpio [选项] < 文件名或者设备名

选项: -o 将文件拷贝打包成文件或者将文件输出到设备上

-i 解包,将打包文件解压或将设备上的备份还原到系统

-t 预览,查看文件内容或者输出到设备上的文件内容

-v 显示打包过程中的文件名称。

-d 解包生成目录,在cpio还原时,自动的建立目录

-c 一种较新的存储方式

[root@dayi123 ~]# find /root -print | cpio -ov >root.cpio   #root目录备份

/root

/root/.bash_logout

/root/.bash_profile

……

16241 blocks

[root@dayi123 ~]# ll root.cpio

-rw-r--r--. 1 root root 8315392 Apr  7 21:30 root.cpio

[root@dayi123 ~]# cpio -tv < root.cpio     #查看备份的内容

dr-xr-x---   5 root     root            0 Apr  7 21:30 /root

-rw-r--r--   1 root     root           18 Dec 28  2013 /root/.bash_logout