您的位置:新葡亰496net > 电脑系统 > 削减解压打包工具大集结,压缩与解压缩

削减解压打包工具大集结,压缩与解压缩

发布时间:2019-12-29 22:50编辑:电脑系统浏览(178)

    调整和减少、解压缩及归档工具备许多,几天前我就整合治理多少个大家较为常用的。

     

    compress  gzip  bzip2  xz  

    前言

    zip tar cpio

    大器晚成、打包工具tar

    风华正茂、压缩、解压工具

     

              用法

     

    压缩

    工具

    压缩后

    压缩包格式

    解压缩

    (默认不保留源文件)

    保留原文件压缩

    -c :将压缩结果打印到屏幕上

    保留压缩文件解压

    *zcat :将解压结果打印到屏幕上

    强制压缩(默认不压缩硬链接)

    显示详细过程

    压缩比

    -#(数字越大,压缩比越高,速度越慢

    文件越小)

    compress

    (压缩比最小,文件最大)

    .Z

    -d

    uncompress

    -c > X

    (>相当于创建文件,权限改变)

    zcat X.Z > X

    (>相当于创建文件,权限改变)

    -f

    -v

    gaip

    .gz

    -d

    gunzip

    -c > X

     

    zcat X.gz > X

    -f

    -v

    -1  --fast

    -6 (默认)

    -9  --best

    bzip2

    .bz2

    -d

    bunzip

    -c > X

     

    -k (权限不变)

    bzcat X.gz > X

     

    -k

    -f

    -v

    -1  --fast

    -9 --best

     (默认)

    xz

    (压缩比最大,文件最小)

    .xz

    -d

     

    -c > X

     

    -k(权限不变)

    xzcat X.gz > X

     

    -k

    -f

    -v

    -1  --fast

    -6 (默认)

    -9  --best

     

    1.1 tar简介

    1、compress   

    压缩文件,会去除原本文件,生成压缩文件

    格式 : .Z

    解压 : -d   解压文件,会删除压缩文件,生成原本文件 (不能够tab补齐卡塔尔(قطر‎

        uncompress  和-d一样 (能tab补齐)

    zcat X.Z > X    zcat X.Z  将解压结果打字与印刷到显示器上,同盟重定向,将解压的结果导入到 .Z压缩文件中,不删除原来的书文件,生成压缩文件,但因为>生成新文件,权限会变。

    来得结果: -c  将压缩结果打字与印刷到显示屏上,同盟重定向,将裁减的结果导入到 .Z压缩文件中,不删除原著件,生成压缩文件,但因为>生成新文件,权限会变。(能够对硬链接数为2的文本收缩)

    强逼减削: -f   私下认可不对硬链接数为2及以上的文书减少,加上f,免强减削钦赐文件,而其余同inode的文本硬链接数减1.

    体现详细经过:-v 

     新葡亰496net 1

    削减解压打包工具大集结,压缩与解压缩。 新葡亰496net 2

     

    1.2 tar选项详细明白

    2、gzip** *削减解压打包工具大集结,压缩与解压缩。*  

    压缩文件,会去除原本文件,生成压缩文件

    格式 : .gz

    解压 : -d   解压文件,会删除压缩文件,生成原本文件(能tab补齐)

        gunzip 和-d一样

    zcat X.gz > X   (原理同上compress卡塔尔

    展示结果: -c  (原理同上compress卡塔尔国

    逼迫减削: -f   (原理同上compressState of Qatar

    体现详细进程:-v 

    压缩比: -# 数字越大,压缩比越高,速度越慢,文件越小。

      -1 等于 --fast

      -2,3,4,5,6(default默认),7,8

      -9 等于 --best

     新葡亰496net 3

     

    1.3 tar补充——包分隔之split

    3、bzip2

    压缩文件,会去除原本文件,生成压缩文件

    格式 : .bz2

    解压 : -d   解压文件,会删除压缩文件,生成原本文件(能tab补齐)

        bunzip2 和-d一样

    bzcat X.bz2 > X   (原理同上compressState of Qatar

    封存原来的作品件压缩、解压: -k  比compress,gzip 多出的用法

    展现结果: -c  (原理同上compressState of Qatar

    免强减削: -f   (原理同上compress卡塔尔

    体现详细进度:-v 

    压缩比: -# 数字越大,压缩比越高,速度越慢,文件越小。

      -1 等于 --fast

      -2,3,4,5,6,7,8

      -9 等于 --best (default默认)

     新葡亰496net 4

     

    1.4 打包备份 cpio

    4、xz

    压缩文件,会去除原本文件,生成压缩文件

    格式 : .xz

    解压 : -d   解压文件,会删除压缩文件,生成原本文件(能tab补齐)

    xzcat X.gz > X   (原理同上compress卡塔尔国

    封存原著件压缩、解压: -k  比compress,gzip 多出的用法

    体现结果: -c  (原理同上compressState of Qatar

    强逼减少: -f   (原理同上compress卡塔尔(قطر‎

    体现详细进度:-v 

    压缩比: -# 数字越大,压缩比越高,速度越慢,文件越小。

      -1 等于 --fast

      -2,3,4,5,6(default默认),7,8

      -9 等于 --best

     新葡亰496net 5

    正如 :  压缩比:xz > bzip2 > gzip > compress(不自然,有的景况bzip2 比xz要好)

             xz 压缩比最大,文件最小

     新葡亰496net 6

     

    二、压缩工具汇总

    新葡亰496net,二、打包工具 zip tar

    2.1 compress/uncompress(.Z文件)

    1、zip

    卷入压缩(自动生成后缀.zipState of Qatar

    ①  zip –r  生成文件(自动生成.zip卡塔尔国  打包文件(目录,普通文书都行卡塔尔(قطر‎

         例:zip -r app app/

    ②  comment | zip  生成文件(自动生成.zip卡塔尔国 -

                这种艺术打包,只好unzip -p X.zip > X 解包

                例:cat /var/log/messages | zip messages -

                       unzip -p message.zip > message

    解包解压缩

    unzip X.zip

    unzip -p 预览解压缩后的剧情到显示器,能够布署重定向将结果保存到钦赐文件,权限会发生变化。

     新葡亰496net 7

     

    2.2 gzip/gunzip(.gz文件)

    2、tar 

        -f 包名,全体用法都要和-f组合

      -c -f 创建包名字  最早的著工件(可以钦定五个)

      -t -f 包名字   显示包中的文本名

      -tv -f 详细突显包中的文件名

      -r -f 包名字 新文件名(能够钦定三个),向包里放钦点文件

      --delete -f 包名字 被删去的文件名(可以钦命多少个State of Qatar,从包中删除钦命文件

      -x -f 包名字 解出具备的文书到当前目录,把包中具备文件移出,解压包

      -x -f 包名字 文件名 解所钦赐的文书到当前目录,从包中移出内定文件

      -C 解包到内定目录

      -v 详细音讯

      -Jcf 创设包的名字(.tar.xz卡塔尔(قطر‎ 原作书(能够钦点多少个) 打包并用xz压缩

      -jcf 创设包的名字(.tar.bz2State of Qatar 原作书(能够钦点多少个) 打包并用bzip压缩

      -zcf 创设包的名字(.tar.gz卡塔尔 原来的文章书(能够钦命多少个) 打包并用gzip压缩

      -T 指定个列表,包含亟需被包裹的文本,以换行符为间距

      -X 指定个消灭列表,以换行符为间隔

     split –b Size –d tar-file-name prefix-name 将tar包分隔为七个文件

     cat 被分隔出的多少个文件名 > 单个文件名  合并

    新葡亰496net 8

    新葡亰496net 9

     新葡亰496net 10

     新葡亰496net 11

     

    2.3 bzip2/bunzip2/bzcat(.bz2文件)

    3、cpio(不常用)

    cpio 命令是通过重定向的方式将文件举行打包备份,还原苏醒的工具,它能够解压以“.cpio” 只怕“.tar” 结尾的公文。

    cpio [ 选项] >  文件名恐怕设备名

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

    选项

      -o  将文件拷贝打包成文件大概将文件输出到设备上

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

      -t  预览,查看文件内容还是输出到装备上的公文内容

      -v  彰显打包进度中的文件名称。

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

      -c 后生可畏种较新的囤积方式

     例:将etc 目录备份 find ./etc -print |cpio -ov >etc.cpio

      内容预览   cpio –tv < etc.cpio

      要解包文件  cpio –idv < etc.cpio

     

     

                                                                                     指望对我们有赞助,有啥错误请告诉笔者~新葡亰496net 12

     

    2.4 xz/unxz/xzcat(.xz文件)

    2.5 打包压缩zip/unzip(.zip文件)

     

    前言

    在我们采用计算机的经过中,会须要文件传输,当文件超级大的时候,我们就要求用到压缩工具。在windows系统下,最广泛的压缩文件独有两种,一个是 “.rar”,另三个是“.zip”。而在大家的linux系统下,可就大大分化了,它有“.Z”、“.gz”、“.bz2”、“.xz”、“.zip”等相当多的压缩文件名,接下去,大家就来分不要讲一说这么些linux系统下大规模的压缩文件。

     

    风度翩翩、打包工具tar

    1.1 tar简介

    或是有人会有疑难,为何明明是三个介绍压缩与解压缩的博客,怎么一齐始就说打包工具!!!∑(゚Д゚ノ卡塔尔ノ当然那不是作者写错,我们在介绍压缩文件在此以前,首先要弄明白一个概念,压缩和包裹。

    所谓打包,正是把一大堆文件或目录什么的形成三个总的文件;而减去则是把一个十分的大的文本通过有个别压缩算法形成四个小文件。为何要有别于这五个概念吗?那是由于Linux中的比超多减小程序只好针对三个文本进行压缩,所以当你想减掉一大堆文件的时候,就须要先把这个文件打包到二头,然后才具够用我们的裁减程序开展压缩。

    在linux下,最常用的包装工具正是tar了。接下来大家就详细说一说那个命令。

    命令:tar

    格式:tar [OPTION]...

     

    1.2 tar选项精解

    (1)成立归档

    tar -cf /PATH/TO/SOMEFILE.tar FILE…

    -c是意味爆发新的包,-f内定包的文书名。

     1 [root@ keer app]# ll
     2 total 28
     3 -rw-r--r--. 1 root root 15131 Aug 11 19:44 functions
     4 -rw-r--r--. 1 root root   999 Aug 11 19:51 god
     5 -rw-r--r--. 1 root root  3518 Aug 11 19:44 passwd
     6 -rw-r--r--. 1 root root   288 Aug 11 19:47 poetry
     7 [root@ keer app]# tar -cf app.tar ./*                ------------把当前目录下所有文件打包到app.tar中
     8 [root@ keer app]# ll
     9 total 60
    10 -rw-r--r--. 1 root root 30720 Aug 11 19:53 app.tar
    11 -rw-r--r--. 1 root root 15131 Aug 11 19:44 functions
    12 -rw-r--r--. 1 root root   999 Aug 11 19:51 god
    13 -rw-r--r--. 1 root root  3518 Aug 11 19:44 passwd
    14 -rw-r--r--. 1 root root   288 Aug 11 19:47 poetry
    

     

    (2)追Gavin件至归档  (注:不扶助对压缩文件的增加)

    tar -rf /PATH/TO/SOMEFILE.tar FILE…

    -r是代表增Gavin件的情趣。

    (3)查看归档文件中的文件列表

    tar -tvf /PATH/TO/SOMEFILE.tar

    -t是列出文件的情致,-v是对文本实行长列出(详细音讯)

    Example: 

     1 [root@ keer app]# tar -tvf app.tar 
     2 -rw-r--r-- root/root     15131 2017-08-11 19:44 ./functions
     3 -rw-r--r-- root/root       999 2017-08-11 19:51 ./god
     4 -rw-r--r-- root/root        36 2017-08-11 20:01 ./nihao
     5 -rw-r--r-- root/root      3518 2017-08-11 19:44 ./passwd
     6 -rw-r--r-- root/root       288 2017-08-11 19:47 ./poetry
     7 [root@ keer app]# tar -rf app.tar nihao      ------------追加nihao文件至app.tar中
     8 [root@ keer app]# tar -tvf app.tar           ------------查看app.tar中的文件列表
     9 -rw-r--r-- root/root     15131 2017-08-11 19:44 ./functions
    10 -rw-r--r-- root/root       999 2017-08-11 19:51 ./god
    11 -rw-r--r-- root/root        36 2017-08-11 20:01 ./nihao
    12 -rw-r--r-- root/root      3518 2017-08-11 19:44 ./passwd
    13 -rw-r--r-- root/root       288 2017-08-11 19:47 ./poetry
    14 -rw-r--r-- root/root        36 2017-08-11 20:01 nihao 
    

    (4)张开归档

    tar -xf /PATH/TO/SOMEFILE.tar

    -x是解包的情致

    tar -xf /PATH/TO/SOMEFILE.tar -C /PATH/

    -C是点名新的门路存款和储蓄解包后的文件

    Example:

     1 [root@ keer app]# tar -cvf test.tar /etc/passwd /etc/group       -----------打包/etc/passwd和/etc/group到test.tar中
     2 tar: Removing leading `/' from member names
     3 /etc/passwd
     4 /etc/group
     5 [root@ keer app]# ll
     6 total 76
     7 -rw-r--r--. 1 root root 30720 Aug 12 08:46 app.tar
     8 -rw-r--r--. 1 root root 15131 Aug 11 19:44 functions
     9 -rw-r--r--. 1 root root   999 Aug 11 19:51 god
    10 -rw-r--r--. 1 root root    36 Aug 11 20:01 nihao
    11 -rw-r--r--. 1 root root  3518 Aug 11 19:44 passwd
    12 -rw-r--r--. 1 root root   288 Aug 11 19:47 poetry
    13 -rw-r--r--. 1 root root 10240 Aug 12 08:55 test.tar
    14 [root@ keer app]# tar -xf test.tar                               ------------解包test.tar
    15 [root@ keer app]# ll
    16 total 80
    17 -rw-r--r--. 1 root root 30720 Aug 12 08:46 app.tar
    18 drwxr-xr-x. 2 root root  4096 Aug 12 08:55 etc               ------------解包test.tar生成的文件目录
    19 -rw-r--r--. 1 root root 15131 Aug 11 19:44 functions
    20 -rw-r--r--. 1 root root   999 Aug 11 19:51 god
    21 -rw-r--r--. 1 root root    36 Aug 11 20:01 nihao
    22 -rw-r--r--. 1 root root  3518 Aug 11 19:44 passwd
    23 -rw-r--r--. 1 root root   288 Aug 11 19:47 poetry
    24 -rw-r--r--. 1 root root 10240 Aug 12 08:55 test.tar
    25 [root@ keer app]# ll etc/* 
    26 -rw-r--r--. 1 root root 1500 Aug  8 17:57 ./etc/group
    27 -rw-r--r--. 1 root root 3518 Aug  8 17:57 ./etc/passwd 
    

    (5)结合压缩工具达成:归档并减弱(合营cf使用)

    -j:bzip2    -z:gzip    -J:xz

    -T选项钦赐输入文件,-X选项钦命富含要免除的文件列表  

        tar -zcvf mybackup.tgz -T /root/includefilelist -X  /root/ excludefilelist

    Includefilelist和excludefilelist多个文件存的都以文件的门路,Includefilelist文件里存的不二诀要是索要补给的公文,excludefilelist文件里存的门路是亟需杀绝的文件。举个例子在大家供给大批量展开打包压缩的时候,大家能够把包裹和裁减放在一条命令中进行,那时候,大家就能够把必要打包的文件路线存在Includefilelist文件,不过这个文件中也许有风流倜傥对大家是不要求的,就足以将其路线存在excludefilelist文件。当然名字是足以随便的显明~

     1 [root@ keer app]# tar -jcf files.tar.bz2 /etc/passwd /etc/group      ----------把/etc/passwd和/etc/group打包并压缩至files.tar.bz2中
     2 tar: Removing leading `/' from member names
     3 [root@ keer app]# ll
     4 total 84
     5 -rw-r--r--. 1 root root 30720 Aug 12 08:46 app.tar
     6 drwxr-xr-x. 2 root root  4096 Aug 12 08:55 etc
     7 -rw-r--r--. 1 root root  1866 Aug 12 09:11 files.tar.bz2
     8 -rw-r--r--. 1 root root 15131 Aug 11 19:44 functions
     9 -rw-r--r--. 1 root root   999 Aug 11 19:51 god
    10 -rw-r--r--. 1 root root    36 Aug 11 20:01 nihao
    11 -rw-r--r--. 1 root root  3518 Aug 11 19:44 passwd
    12 -rw-r--r--. 1 root root   288 Aug 11 19:47 poetry
    13 -rw-r--r--. 1 root root 10240 Aug 12 08:55 test.tar 
    
     1 [root@ keer app]# cat includefilelist 
     2 /etc/init.d/
     3 /root/bin
     4 /app
     5 [root@ keer app]# cat excludefilelist 
     6 /root/bin/createuser21.sh
     7 /root/bin/createyonghu21.sh
     8 [root@ keer app]# tar -zcvf mybackup.tgz -T ./includefilelist -X ./excludefilelist   ----------把includefilelist中写的文件打包,除了excludefilelist中写的文件
     9 tar: Removing leading `/' from member names
    10 /etc/init.d
    11 /root/bin/
    12 /root/bin/jiaozuoye21.sh
    13 /root/bin/sumspace21.sh
    14 /root/bin/links.sh
    15 /root/bin/disk.sh
    16 /root/bin/argsnum21.sh
    17 /root/bin/createsh21.sh
    18 /root/bin/nologin21.sh
    19 /root/bin/reset21.sh
    20 /root/bin/hello.sh
    21 /root/bin/sumfile21.sh
    22 /root/bin/systeminfo.sh
    23 /root/bin/hostping21.sh
    24 /root/bin/sumid21.sh
    25 /root/bin/backup.sh
    26 /root/bin/per21.sh
    27 /root/bin/login21.sh
    28 /root/bin/excute21.sh
    29 /root/bin/checkdisk21.sh
    30 /app/
    31 /app/poetry
    32 /app/functions
    33 /app/mybackup.tgz
    34 /app/test.tar
    35 /app/god
    36 /app/files.tar.bz2
    37 /app/includefilelist
    38 /app/passwd
    39 /app/nihao
    40 /app/excludefilelist
    41 /app/etc/
    42 /app/etc/group
    43 /app/etc/passwd
    44 /app/app.tar
    45 
    46 #以上打包的所有文件中,不包含/root/bin/createuser21.sh,/root/bin/createyonghu21.sh这两个文件。
    47 
    48 [root@ keer app]# ll
    49 total 112
    50 -rw-r--r--. 1 root root 30720 Aug 12 08:46 app.tar
    51 drwxr-xr-x. 2 root root  4096 Aug 12 08:55 etc
    52 -rw-r--r--. 1 root root    54 Aug 12 09:19 excludefilelist
    53 -rw-r--r--. 1 root root  1866 Aug 12 09:11 files.tar.bz2
    54 -rw-r--r--. 1 root root 15131 Aug 11 19:44 functions
    55 -rw-r--r--. 1 root root   999 Aug 11 19:51 god
    56 -rw-r--r--. 1 root root    28 Aug 12 09:18 includefilelist
    57 -rw-r--r--. 1 root root 18307 Aug 12 09:20 mybackup.tgz             ------生成的文件
    58 -rw-r--r--. 1 root root    36 Aug 11 20:01 nihao
    59 -rw-r--r--. 1 root root  3518 Aug 11 19:44 passwd
    60 -rw-r--r--. 1 root root   288 Aug 11 19:47 poetry
    61 -rw-r--r--. 1 root root 10240 Aug 12 08:55 test.tar
    

     

    1.3 tar补充——包分隔之split

    即使我们在包装的进度中,打包出来的文件大小过大,大概照样不符合传输,那时候大家能够把这几个文件用split命令分割成八个小文件,这样恐怕更进一层方便大家的囤积和传导,当然,在解包的时候,笔者么能够再将其还原成三个整机的文件。

    命令:split

    格式:split -b size -d tar-file-name prefix-name

        -b代表每一个输出文件的轻重缓急,-d表示输出的终极以数字标示(即便不加-d则以字母代表为后缀)

    Example:

    1、split -b 1M -d mybackup.tgz mybackup-parts

    新葡亰496net 13

    2、split -b 1M mybackup.tgz mybackup-parts

    新葡亰496net 14

    1.4 打包备份cpio

         cpio命令是经过重定向的法子将文件进行李包裹道具份,还原恢复生机的工具,它能够解压以“.cpio”只怕“.tar”结尾的文件。

    命令:cpio

    格式:cpio [选项] > 文件名或配备名

          cpio [选项] < 文件名或配备名

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

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

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

              -v 展现打包进程中的文件名称

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

              -c 意气风发种较新的存放情势

     1 [root@ keer app]# find -type f |cpio -o > /app/etc_f.cpio         ----------通过重定向把/etc/下的普通文件进行打包备份
     2 [root@ keer app]# ll
     3 total 204
     4 -rw-r--r--. 1 root root  30720 Aug 12 08:46 app.tar
     5 drwxr-xr-x. 2 root root   4096 Aug 12 08:55 etc
     6 -rw-r--r--. 1 root root 107008 Aug 12 09:31 etc_f.cpio
     7 -rw-r--r--. 1 root root     54 Aug 12 09:19 excludefilelist
     8 -rw-r--r--. 1 root root   1866 Aug 12 09:11 files.tar.bz2
     9 -rw-r--r--. 1 root root      0 Aug 12 09:26 functions
    10 -rw-r--r--. 1 root root    999 Aug 11 19:51 god
    11 -rw-r--r--. 1 root root     28 Aug 12 09:18 includefilelist
    12 -rw-r--r--. 1 root root  18307 Aug 12 09:20 mybackup.tgz
    13 -rw-r--r--. 1 root root     36 Aug 11 20:01 nihao
    14 -rw-r--r--. 1 root root   3518 Aug 11 19:44 passwd
    15 -rw-r--r--. 1 root root    288 Aug 11 19:47 poetry
    16 -rw-r--r--. 1 root root  10240 Aug 12 08:55 test.tar
    17 
    18 # 查看刚刚打包的文件内容:
    19 
    20 [root@ keer app]# cpio -vt < etc_f.cpio |less
    21 -rw-r--r--   1 root     root          288 Aug 11 19:47 poetry
    22 -rw-r--r--   1 root     root            0 Aug 12 09:26 functions
    23 -rw-r--r--   1 root     root        18307 Aug 12 09:20 mybackup.tgz
    24 -rw-r--r--   1 root     root        10240 Aug 12 08:55 test.tar
    25 -rw-r--r--   1 root     root          999 Aug 11 19:51 god
    26 -rw-r--r--   1 root     root         1866 Aug 12 09:11 files.tar.bz2
    27 -rw-r--r--   1 root     root           28 Aug 12 09:18 includefilelist
    28 -rw-r--r--   1 root     root         3518 Aug 11 19:44 passwd
    29 -rw-r--r--   1 root     root           36 Aug 11 20:01 nihao
    30 -rw-r--r--   1 root     root           54 Aug 12 09:19 excludefilelist
    31 -rw-r--r--   1 root     root        35328 Aug 12 10:33 etc_f.cpio
    32 -rw-r--r--   1 root     root        30720 Aug 12 08:46 app.tar
    

        新建一个目录,并将文件苏醒到该目录下

     1 [root@ keer app]# mkdir etc
     2 [root@ keer app]# ll
     3 total 196
     4 drwxr-xr-x. 2 root root   4096 Aug 12 10:51 etc
     5 -rw-r--r--. 1 root root 101888 Aug 12 10:33 etc_f.cpio
     6 [root@ keer app]# cd etc/
     7 [root@ keer etc]# pwd
     8 /app/etc
     9 [root@ keer etc]# cpio -id < ../etc_f.cpio 
    10 199 blocks
    11 [root@ keer etc]# ll
    12 total 128
    13 -rw-r--r--. 1 root root 30720 Aug 12 10:52 app.tar
    14 -rw-r--r--. 1 root root 35328 Aug 12 10:52 etc_f.cpio
    15 -rw-r--r--. 1 root root    54 Aug 12 10:52 excludefilelist
    16 -rw-r--r--. 1 root root  1866 Aug 12 10:52 files.tar.bz2
    17 -rw-r--r--. 1 root root     0 Aug 12 10:52 functions
    18 -rw-r--r--. 1 root root   999 Aug 12 10:52 god
    19 -rw-r--r--. 1 root root    28 Aug 12 10:52 includefilelist
    20 -rw-r--r--. 1 root root 18307 Aug 12 10:52 mybackup.tgz
    21 -rw-r--r--. 1 root root    36 Aug 12 10:52 nihao
    22 -rw-r--r--. 1 root root  3518 Aug 12 10:52 passwd
    23 -rw-r--r--. 1 root root   288 Aug 12 10:52 poetry
    24 -rw-r--r--. 1 root root 10240 Aug 12 10:52 test.tar
    

        临时利用cpio命令打包的文件过大,我们还足以行使压缩命令对其开展压缩

    1 [root@ keer app]# bzip2 -k -9 etc_f.cpio 
    2 [root@ keer app]# ll -h
    3 total 232K
    4 drwxr-xr-x. 2 root root 4.0K Aug 12 10:52 etc
    5 -rw-r--r--. 1 root root 100K Aug 12 10:33 etc_f.cpio
    6 -rw-r--r--. 1 root root  35K Aug 12 10:33 etc_f.cpio.bz2
    

     

    二、压缩工具汇总

    2.1 compress/uncompress(.Z文件)

    命令:compress  压缩

    格式:compress [-dfvcVr] [-b maxbits] [file ...]

    慎选:  -d:解压缩,相当于uncompress(不能补齐)

         -c:将结果打字与印刷到显示器上,合作重定向,不会覆盖原来的小说件,但权力会变。

          -v:呈现实际情况(压缩进程)

              -f:暗中认可不对硬链接数为2及以上的公文缩短,加上f,免强减少钦命文件,而别的同inode的文书硬链接数减1.

    指令:uncompress  解压缩(能够补齐)

    格式:uncompress [file ...]

    Example:

    1 [root@ keer app]# ll -h
    2 total 1.3G
    3 -rw-r--r--. 1 root root 1.3G Aug 12 11:07 passwd
    4 [root@ keer app]# compress passwd         ----------压缩passwd
    5 [root@ keer app]# ll -h
    6 total 117M
    7 -rw-r--r--. 1 root root 117M Aug 12 11:07 passwd.Z
    

        由上能够看见,那些工具的减少功效不是异常高,并且会覆盖原版的书文件,大家怎么本领保存原来的小说件况且也回降呢?

    1 [root@ keer app]# compress -c passwd > passwd.Z
    2 [root@ keer app]# ll -h
    3 total 1.4G
    4 -rw-r--r--. 1 root root 1.3G Aug 12 11:07 passwd
    5 -rw-r--r--. 1 root root 117M Aug 12 11:16 passwd.Z
    

        当然这种措施大概会促成文件的权位改动0.0由此提议不用接收这种方式。

        即使大家降低的公文中有隐含硬链接的文件呢?我们增添 -f 选项就可以:

     1 [root@ keer app]#ll -h
     2 total 1.4G
     3 -rw-r--r--. 1 root root 1.3G Aug 12 11:07 passwd
     4 -rw-r--r--. 1 root root 7.8M Aug 12 11:23 passwd.gz
     5 -rw-r--r--. 1 root root 117M Aug 12 11:16 passwd.Z
     6 [root@ keer app]#
     7 [root@ keer app]#ll -h
     8 total 1.4G
     9 -rw-r--r--. 1 root root 1.3G Aug 12 11:07 passwd
    10 -rw-r--r--. 1 root root 7.8M Aug 12 11:23 passwd.gz
    11 -rw-r--r--. 1 root root 117M Aug 12 11:16 passwd.Z
    12 [root@ keer app]#ln passwd passwd.ln
    13 [root@ keer app]#ll -h
    14 total 2.6G
    15 -rw-r--r--. 2 root root 1.3G Aug 12 11:07 passwd
    16 -rw-r--r--. 1 root root 7.8M Aug 12 11:23 passwd.gz
    17 -rw-r--r--. 2 root root 1.3G Aug 12 11:07 passwd.ln        ------------注意硬链接数
    18 -rw-r--r--. 1 root root 117M Aug 12 11:16 passwd.Z
    19 [root@ keer app]#compress passwd
    20 passwd has 1 other links: unchanged
    21 [root@ keer app]#compress -f  passwd
    22 [root@ keer app]#ll -h
    23 total 1.4G
    24 -rw-r--r--. 1 root root 7.8M Aug 12 11:23 passwd.gz
    25 -rw-r--r--. 1 root root 1.3G Aug 12 11:07 passwd.ln        ------------注意硬链接数
    26 -rw-r--r--. 1 root root 117M Aug 12 11:07 passwd.Z
    

      下边给大家说一下解压缩,风度翩翩共三种办法:

    1 [root@ keer app]# compress -d passwd.Z
    2 [root@ keer app]# uncompress passed.Z
    3 [root@ keer app]# zcat passwd.Z > passwd
    

           由上得以见到,大家有三个解压缩的全能工具——zcat。这几个命令前面一贯跟供给解压缩的公文名,不过那么些命令出来的从头到尾的经过也是一向打字与印刷的,供给相称重定向使用。

    在本文介绍的全体压缩工具中,唯有compress -d 命令是不得以补齐的,别的的都得以,这些要留意喏。所以这么些工具其实并非很好用。

     

    2.2 gzip/gunzip(.gz文件)

    命令:gzip

    格式:gzip [OPTION]... FILE ...

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

    -c 将结果打字与印刷到荧屏上,协作重定向,不会覆盖最早的文章件,但权力会变。

    -f 暗许不对硬链接数为2及以上的公文减少,加上f,强逼减少钦定文件,而别的同inode的文件硬链接数减1.

    -v 呈现详细经过。

    -# 数字越大,压缩比越高,速度越慢,文件越小。

    -1 等于 --fast

    -2,3,4,5,6(default),7,8

    -9 等于 --best

    Example:

    1 [root@ keer app]# gzip -c passwd > passwd.gz    -----------保留原文件并对passwd进行压缩
    2 [root@ keer app]# ll -h
    3 total 1.4G
    4 -rw-r--r--. 1 root root 1.3G Aug 12 11:07 passwd
    5 -rw-r--r--. 1 root root 7.8M Aug 12 11:23 passwd.gz
    

             能够观望,那些的减削功效依然蛮高的,这一个命令有一个设定压缩比的出力,用数字1-9代表,下边大家就来演示一下:

     1 [root@ keer app]# gzip -c1 passwd > passwd.1.gz
     2 [root@ keer app]# gzip -c6 passwd > passwd.6.gz
     3 [root@ keer app]# gzip -c9 passwd > passwd.9.gz
     4 
     5 #我们只来对比一下1,6,9。别的就不做过多演示
     6 
     7 [root@ keer app]# ll 
     8 total 1477020
     9 -rw-r--r--. 1 root root 1330664794 Aug 12 11:07 passwd
    10 -rw-r--r--. 1 root root   35703636 Aug 12 14:34 passwd.1.gz
    11 -rw-r--r--. 1 root root    8162665 Aug 12 14:35 passwd.6.gz
    12 -rw-r--r--. 1 root root    7974465 Aug 12 14:36 passwd.9.gz
    13 -rw-r--r--. 1 root root    8162665 Aug 12 11:23 passwd.gz
    

             从上边我们得以窥见,passwd.6.gz和passwd.gz的大大小小是相像的,也等于说,gzip的暗许压缩比是6

        gzip的解压方法也是二种,如下:

    1 [root@ keer app]# gzip -d test_gzip.gz 
    2 [root@ keer app]# gunzip test_gzip.gz 
    3 [root@ keer app]# zcat test_gzip.gz > test_gzip
    

     

    2.3 bzip2/bunzip2/bzcat(.bz2文件)

    命令:bzip2

    格式:bzip2 [OPTION]... FILE ...

    接纳:    -d 解压缩,也正是bunzip2&bzcat(bzcat要求相当的重定向使用)

    -k 保留原来的书文件

    -c 将结果打字与印刷到荧屏上,同盟重定向,不会覆盖原版的书文件,但权力会变。

    -f 默许不对硬链接数为2及以上的公文裁减,加上f,强制减少钦命文件,而别的同inode的文件硬链接数减1.

    -v 显示详细进程。

    -#         数字越大,压缩比越高,速度越慢,文件越小。

    -1 等于 --fast

    -2,3,4,5,6,7,8

    -9 等于 --best (default)

    Example:

        前面边介绍到的三个压缩工具比较,bzip2工具不独有抓牢了压缩比,还足以保留原著件,能够说是相当好用了( • ̀ω•́ 卡塔尔✧可是可是!压缩的时刻真的是不短了╮(╯﹏╰)╭所以太大的文件不建议用那些工具

    1 [root@ keer app]# ll -h
    2 total 146M
    3 -rw-r--r--. 1 root root 146M Aug 12 15:28 test
    4 [root@ keer app]# bzip2 -k test       -------------压缩test文件
    5 [root@ keer app]# ll -h
    6 total 147M
    7 -rw-r--r--. 1 root root 146M Aug 12 15:28 test
    8 -rw-r--r--. 1 root root 564K Aug 12 15:28 test.bz2
    

         相似的,大家也来讲一下怎么解压

    1 [root@ keer app]# bunzip2 test.bz2
    2 [root@ keer app]# bzip2 -d test.bz2
    3 [root@ keer app]# bzcat test.bz2 > test
    

     

    2.4 xz/unxz/xzcat(.xz文件)

    命令:xz

    格式:xz [OPTION]... FILE...

    选项:  -d 解压缩   xzcat

         -k 保留原版的书文件

         -f 默许不对硬链接数为2及以上的文件减弱,加上f,强制减削钦点文件,而其他同inode的文书硬链接数减1.

         -v 显示详细进度。

         -#   数字越大,压缩比越高,速度越慢,文件越小。

           -0 等于 --fast

           -1 -2,3,4,5,6(default),7,8

           -9 等于 --best

    Example:

            当当当当,本文中介绍的具有压缩工具中最棒用的来了~xz与上文中介绍的多个工具比较,压缩比但是高的人多眼杂喏

     1 [root@ keer app]# ll -h
     2 total 162M
     3 -rw-r--r--. 1 root root 146M Aug 12 15:28 test
     4 -rw-r--r--. 1 root root 564K Aug 12 15:28 test.bz2
     5 -rw-r--r--. 1 root root 870K Aug 12 15:42 test.gz
     6 -rw-r--r--. 1 root root  15M Aug 12 15:42 test.Z
     7 [root@ keer app]# xz -kv test
     8 100 %        23.6 KiB / 145.6 MiB = 0.000    11 MiB/s       0:13             
     9 [root@ keer app]# ll -h
    10 total 162M
    11 -rw-r--r--. 1 root root 146M Aug 12 15:28 test
    12 -rw-r--r--. 1 root root 564K Aug 12 15:28 test.bz2
    13 -rw-r--r--. 1 root root 870K Aug 12 15:42 test.gz
    14 -rw-r--r--. 1 root root  24K Aug 12 15:28 test.xz
    15 -rw-r--r--. 1 root root  15M Aug 12 15:42 test.Z
    

              那就能够很精通的相比较出xz的减削比有多大了,并且xz的滑坡时间也非常快喏~0.0

        大家再来讲一下xz怎么着解压

    1 [root@ keer app]# xz -d test.xz 
    2 [root@ keer app]# xzcat test.xz > test
    

     

    2.5 打包压缩zip/unzip(.zip文件)

    命令:zip(打包压缩)

    格式:zip -r 包名文件1门道  文件二路径 …

    zip命令是将三个公文进行包装压缩,所以一向在包名后跟文件路线就能够。借使不加包名,会暗中同意将率先个文本作为包名,该公文不到场打包压缩的长河。

    一声令下:unzip(打包解压缩)

    格式:unzip file...

    unzip解压时,会在当前目录下新建一个文件夹,文件夹内积攒包内的保有文件。文件的权能不改变。

    补充:

    |zip 将转移的文书名 –

    能够将管道前的出口结果转为文件并压缩。通过此方法减弱的文件只可以动用“unzip -p 压缩包 > 新文件 ”来解压缩

    unzip -p 预览解压缩后的原委到显示屏,能够相称重定向将结果保存到钦点文件,权限会产生变化。(通常用来单个文件的压缩和平解决压缩)

    Example:

     1 [root@ keer app]# zip -r files /etc/group /etc/passwd      ----------打包压缩/etc/group和/etc/passwd文件
     2   adding: etc/group (deflated 51%)
     3   adding: etc/passwd (deflated 64%)
     4 [root@ keer app]# ll 
     5 total 4
     6 -rw-r--r--. 1 root root 2336 Aug 12 15:50 files.zip
     7 [root@ keer app]# unzip -d lianxi files.zip                -----------解压文件files.zip到lianxi目录下
     8 Archive:  files.zip
     9   inflating: lianxi/etc/group        
    10   inflating: lianxi/etc/passwd       
    11 [root@ keer app]# ll
    12 total 8
    13 -rw-r--r--. 1 root root 2336 Aug 12 15:50 files.zip
    14 drwxr-xr-x. 3 root root 4096 Aug 12 15:51 lianxi
    15 [root@ keer app]# cd lianxi/
    16 [root@ keer lianxi]# ll
    17 total 4
    18 drwxr-xr-x. 2 root root 4096 Aug 12 15:51 etc
    19 [root@ keer lianxi]# cd etc/
    20 [root@ keer etc]# ll
    21 total 8
    22 -rw-r--r--. 1 root root 1500 Aug  8 17:57 group
    23 -rw-r--r--. 1 root root 3518 Aug  8 17:57 passwd
    
     1 [root@ keer app]# find /etc/ -type f | zip etc.zip -             -----------压缩
     2   adding: - (deflated 86%)
     3 [root@ keer app]# ll
     4 total 24
     5 -rw-r--r--. 1 root root 16230 Aug 12 15:55 etc.zip
     6 [root@ keer app]# unzip -p etc.zip > etc.zz                      -----------解压
     7 [root@ keer app]# ll
     8 total 140
     9 -rw-r--r--. 1 root root  16230 Aug 12 15:55 etc.zip
    10 -rw-r--r--. 1 root root 117360 Aug 12 15:55 etc.zz
    

     

     

        以上,如有不足之处还请大家多都赐教诺(〃'▽'〃卡塔尔

    本文由新葡亰496net发布于电脑系统,转载请注明出处:削减解压打包工具大集结,压缩与解压缩

    关键词: