linux基础之压缩、解压缩和归档工具

1、压缩工具

基本介绍

  为了减少文件的原来的文件大小而过多的浪费磁盘的存储空间,我们使用压缩后多文件进行存储

压缩工具的介绍

  compress:把文件压缩成以.z结尾的压缩文件

  uncompress:将以.z压缩文件解压缩为普通文件

  gzip:将文件压缩成以.gz结尾的压缩文件

  gunzip:将以.gz结尾的压缩文件解压缩为普通文件

  bzip2:将文件压缩成以.bz2结尾的压缩文件

  bunzip2:将以.bz2结尾的压缩文件解压缩为普通文件

  xz:将文件压缩成以.xz结尾的压缩文件

  unxz:将以.xz结尾的压缩文件解压缩为普通文件

  zip:将文件压缩成以.zip结尾的压缩文件

  unzip:将以.zip结尾的压缩文件解压缩为普通文件

  tar:将文件归档成以.tar结尾的单文件

  cpio:拷贝文件和归档文件

 

gzip/gunzip类型压缩或解压缩工具

  基本介绍

    gzip使用的是Lemoel-Ziv  LZ777算法实现,这个算法的压缩不是很好。这个文件主要是用来压缩文本文件,如果已经做过二进制编码,那么压缩的意义不大。如果是文本文件被压缩了,我们想看它的内容怎么办?第一个办法先解压缩,在查看。第二个办法使用zcat命令查看

  基本语法

    gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ...  ]

    gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ...  ]

  常用选项

    -dgzip  -d表示的就是gunzip命令,表示解压缩

    -r:表示递归压缩每个子目录下的文件

    -v:压缩详细

    -num:表示压缩比,num表示压缩比,范围是[1-9],数字越高,压缩比越大,压缩后的内容越小,压缩的速度越慢

    -c:将解压缩或者压缩结果输出至标准输出,如果压缩以后想保留原文件可以使用这种方式

  使用案例

    gzip  -c  ./a.txt  > b.gz

  使用注意

    gzip压缩工具进行压缩后,默认会删除源文件,压缩完为了节约空间,只保留压缩后的文件。gunzip解压也是一样,解压缩之后保留解压缩的文件,而删除压缩的文件

 

zcat查看压缩后的文本工具

  基本介绍

    不显示展开压缩文件的前提下查看文本文件内容。

  底层原理

    这个工具底层自动调用gzip  -d或者gunzip命令解压文件至临时文件中,并使用zcat工具查看文件内容

  基本语法

  zcat [ -fhLV ] [ name ...  ]

 

bzip2/bunzip2/bzcat压缩或者解压缩工具

  基本介绍

    bzip2使用的是LZ77/LZ78-based算法实现,能实现更高压缩比

  基本语法

      bzip2 [ -cdfkqstvzVL123456789 ] [ filenames ...  ]

         bunzip2 [ -fkvsVL ] [ filenames ...  ]

         bzcat [ -s ] [ filenames ...  ]

         bzip2recover filename

  常用选项

    -k:保留压缩后的原文件

    -d:执行解压缩,也就是不用使用bunzip2来解压,bzip2  -d也表示解压

    -q:静默输出

    -v:详细输出压缩过程

    -num:表示压缩比,num表示压缩比,范围是[1-9],数字越高,压缩比越大,压缩后的内容越小,压缩的速度越慢

  使用注意

    bzip2压缩工具进行压缩后,默认会删除源文件,压缩完为了节约空间,只保留压缩后的文件。bunzip2解压也是一样,解压缩之后保留解压缩的文件,而删除压缩的文件 

bcat查看压缩后的文本工具

  基本介绍

    不显示展开压缩文件的前提下查看文本文件内容。

  底层原理

    这个工具底层自动调用bzip2  -d或者bunzip2命令解压文件至临时文件中,并使用bcat工具查看文件内容

  基本语法

    bcat [ -fhLV ] [ name ...  ]

 

xz/unxz/xzcat/lzcat/lzma/unlzma压缩或者解压缩工具

  基本介绍

    在进行压缩时使用的是lzma压缩算法,这是一个通用的数据压缩工具,压缩后的文件是以.xz结尾

  基本语法

    xz [option]...  [file]...

         unxz is equivalent to xz --decompress.

         xzcat is equivalent to xz --decompress --stdout.

         lzma is equivalent to xz --format=lzma.

         unlzma is equivalent to xz --format=lzma  --decom-press.

         lzcat  is  equivalent to xz --format=lzma --decom- press --stdout.

  使用注意

    xz压缩工具是一个主流的压缩工具,他是众多开源作者在源程序包中提供的压缩工具。xz压缩工具是没办法对目录进行压缩的,要想对目录进行压缩,xz压缩工具只能对单个文件进行压缩,要想对目录进行压缩,需要将目录打包成单个文件,在对其压缩 。而打包就是归档

 

zip打包或归档和压缩工具

  基本介绍

    zip是众多操作系统都支持的压缩或者打包工具。这个是系统原生支持的压缩工具

  基本语法

    zip  [options....]  压缩后的文件名.zip   要压缩的众多文件

 

unzip解压缩和展开文件

  基本介绍

    将zip压缩工具压缩后进行解压缩并且将归档文件展开的工具

  基本语法

    unzip   压缩和归档文件.zip

 

tar压缩和打包或归档工具

  基本介绍

    打包或者归档和压缩和解压缩工具,这个工具的解压和压缩是调用其他压缩和级压缩工具,比如gzipxz

  基本语法

    tar  [OPTION...]  打包或者压缩文件.tar   [FILE]...

  常用选项

    c:创建归档

    -x:展开归档

    -t:列出归档文件的文件列表

    --delete:从归档文件中删除文件

    -f  path:指明归档文件路径

    -j:调用bzip2压缩工具

    -z:调用gzip压缩工具

    -v:显示详细过程

    -p:保留权限信息

    -J:调用xz压缩工具

    -C  DIR:将展开文件保存至指定目录下DIR,而不是保存在默认目录下,及当前目录

  使用案例

    将当前目录下的归档文件为student.tar,展开到/tmp/studengt目录下

      tar  -x  -f  ./student.tar   -C  /tmp/student

  使用注意

  归档后的文件不会减少文件大小,反而会增大归档后的文件的大小,因为是多个文件合并到一起。归档本身不是压缩

  tar命令在解压展开一个压缩归档文件时,可以不同带压缩的选项,tar命令会根据相应的压缩判断该使用的解压工具