乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      文件打包壓縮

       小樣樣樣樣樣樣 2022-06-30 發(fā)布于北京

       

      自我感覺(jué),文件壓縮打包這塊很好學(xué),別看壓縮命名多,好幾個(gè)不常用,常用的幾個(gè)選項(xiàng)基本都通用。就會(huì)產(chǎn)生一個(gè)很好的結(jié)果,只要學(xué)一個(gè)命令的選項(xiàng),剩下的幾個(gè)命令只要記住名字就可以了。

      本篇的重點(diǎn)在tar命令,大部分網(wǎng)上的文件都是經(jīng)過(guò)打包壓縮處理過(guò)的。

      linux中常見(jiàn)的壓縮文件的擴(kuò)展名:*.gz  *.bz2  *.xz  *.tar  *.tar.gz  *.tar.bz2  *.tar.xz  *.tgz  *.Z  *.tar.Z

       

       

      0.compress/uncompress
      compress 壓縮文件不會(huì)保留源文件,壓縮后的文件后綴是.Z
      -d 解壓縮,相當(dāng)于uncompress,可以重定向以保留源文件
      -c 輸出壓信息到屏幕,可以重定向以保留源文件
      -v 顯示詳情
       
      zcat命令
      可以查看.Z和.gz的壓縮文件內(nèi)容
      此命令太過(guò)久遠(yuǎn)了,基本上已經(jīng)很少見(jiàn)*.Z的壓縮文件了。而且使用gzip命令也可以解壓*.Z壓縮文件。
       
       
      1.gzip/gunzip
      gzip壓縮文件會(huì)刪除源文件,生成.gz為后綴的壓縮文件。
      gzip [option]....FILE.....
      -c 把壓縮文件數(shù)據(jù)流輸出到屏幕上,可以使用重定向保存到文件中,用于保留源文件。
      -d 解壓縮,相當(dāng)于gunzip
      -k 保留源文件,僅在centos8以后的版本中有效
      -v 壓縮后,可以顯示出壓縮比
      -t 用于測(cè)試壓縮包的完整性
      -# 按照指定的壓縮比壓縮。默認(rèn)為6,支持1-9
       
      zcat、zmore、zless命令
      在不解壓.gz后綴的壓縮文件的情況下查看壓縮文件內(nèi)容。zcat FILE.GZ
      zgrep命令
      可以在解壓的情況下直接搜索關(guān)鍵字
      zgrep 關(guān)鍵字 /PATH/TO/COMPRESS.gz

       示例:

       1  #演示在不解壓的情況下搜索關(guān)鍵字
       2 [root@CentOS8 tmp]# zgrep http services.gz  
       3 #       http://www.iana.org/assignments/port-numbers
       4 http            80/tcp          www www-http    # WorldWideWeb HTTP
       5 http            80/udp          www www-http    # HyperText Transfer Protocol
       6 http            80/sctp                         # HyperText Transfer Protocol
       7 https           443/tcp                         # http protocol over TLS/SSL
       8 https           443/udp                         # http protocol over TLS/SSL
       9 https           443/sctp                        # http protocol over TLS/SSL
      10 gss-http        488/tcp
      11 gss-http        488/udp
      12 
      13 
      14 #-c選項(xiàng)和管道符結(jié)合使用,主要用于保存源文件
      15 [root@CentOS8 tmp]# gzip -c services > services.gz   
      16 [root@CentOS8 tmp]# ll
      17 total 824
      18 -rwx------. 1 root root   1379 May  2 08:53 ks-script-drjaqc7p
      19 -rw-r--r--  1 root root 692241 May  3 17:35 services
      20 -rw-r--r--  1 root root 142549 May  3 18:02 services.gz

       

       

      2.bzip2/bunzip2
      bzip2壓縮文件會(huì)刪除源文件,生成.bz2為后綴的壓縮文件。
      bzip2 [option]....FILE.....
      -c 把壓縮文件數(shù)據(jù)流輸出到屏幕上,可以使用重定向保存到文件中,用于保留源文件。
      -k 壓縮后保留源文件,同時(shí)生成壓縮文件。
      -d 解壓縮,相當(dāng)于bunzip2
      -# 按照指定的壓縮比壓縮。默認(rèn)為6,支持1-9
      -q 靜默 壓縮
      -v 壓縮后,顯示出壓縮比
      -r 把目錄下的文件分別進(jìn)行獨(dú)立壓縮
      bzcat/bzmore/bzless命令
      在不解壓.bz2后綴的壓縮文件的情況下查看壓縮文件內(nèi)容,和zcat用法相同。
      bzcat FILE.BZ2
      bzgrep命令
      在不解.bz2后綴的壓縮文件的情況下搜索壓縮包內(nèi)容
      bzgrep 關(guān)鍵字 /PATH/TO/COMPRESS.bz2

      示例:

       1 #保留源文件壓縮,壓縮后顯示壓縮比信息
       2 [root@CentOS8 tmp]# bzip2 -kv services      
       3   services:  5.334:1,  1.500 bits/byte, 81.25% saved, 692241 in, 129788 out.
       4 [root@CentOS8 tmp]# ll
       5 total 952
       6 -rwx------. 1 root root   1379 May  2 08:53 ks-script-drjaqc7p
       7 -rw-r--r--  1 root root 692241 May  3 18:15 services
       8 -rw-r--r--  1 root root 129788 May  3 18:15 services.bz2
       9 -rw-r--r--  1 root root 142549 May  3 18:02 services.gz
      10 
      11 [root@CentOS8 tmp]# bunzip2 services.bz2 

       

       
      3.xz/unxz
      xz壓縮文件會(huì)刪除源文件,生成.xz為后綴的壓縮文件。
      xz [option]....FILE.....
      -c 把壓縮文件數(shù)據(jù)流輸出到屏幕上,可以使用重定向保存到文件中,用于保留源文件。
      -k 壓縮后保留源文件,同時(shí)生成壓縮文件。
      -d 解壓縮,相當(dāng)于unxz
      -# 按照指定的壓縮比壓縮。默認(rèn)為6,支持1-9
      -q 靜默 壓縮
      -v 壓縮后,顯示壓縮比等信息
       
      xzcat/xzmore/xzless命令
      在不解壓.xz后綴的壓縮文件的情況下查看壓縮文件內(nèi)容,和zcat用法相同。xzcat FILE.XZ
      xzgrep命令
      在不解壓的情況下搜索壓縮包內(nèi)容
      xzgrep 關(guān)鍵字 /PATH/TO/COMPRESS.xz

      示例:

      #保留源文件壓縮,并且輸出壓縮比等信息
      [root@CentOS8 tmp]# xz -kv services
      services (1/1)
        100 %       103.4 KiB / 676.0 KiB = 0.153                                    
      [root@CentOS8 tmp]# ll
      total 1056
      -rw-r--r--  1 root root 692241 May  3 18:15 services
      -rw-r--r--  1 root root 129788 May  3 18:15 services.bz2
      -rw-r--r--  1 root root 142549 May  3 18:02 services.gz
      -rw-r--r--  1 root root 105872 May  3 18:15 services.xz
      
      
      [root@CentOS8 tmp]# rm services   #刪除源文件
      rm: remove regular file 'services'? y
      [root@CentOS8 tmp]# xz -dk services.xz     #保留源文件解壓縮
      [root@CentOS8 tmp]# ll
      total 1056
      -rw-r--r--  1 root root 692241 May  3 18:15 services
      -rw-r--r--  1 root root 129788 May  3 18:15 services.bz2
      -rw-r--r--  1 root root 142549 May  3 18:02 services.gz
      -rw-r--r--  1 root root 105872 May  3 18:15 services.xz
      
      #使用xzgrep搜索壓縮包
      [root@CentOS8 tmp]# xzgrep http services.xz 
      #       http://www.iana.org/assignments/port-numbers
      http            80/tcp          www www-http    # WorldWideWeb HTTP
      http            80/udp          www www-http    # HyperText Transfer Protocol
      http            80/sctp                         # HyperText Transfer Protocol
      https           443/tcp                         # http protocol over TLS/SSL
      https           443/udp                         # http protocol over TLS/SSL
      https           443/sctp                        # http protocol over TLS/SSL
      
      #使用-l選項(xiàng)顯示長(zhǎng)格式信息
      [root@CentOS8 tmp]# xz -l services.xz 
      Strms  Blocks   Compressed Uncompressed  Ratio  Check   Filename
          1       1    103.4 KiB    676.0 KiB  0.153  CRC64   services.xz

       

       
      4.zip/unzip
      zip一個(gè)及壓縮打包于一身的壓縮命令,而且還是各個(gè)操作系統(tǒng)通用的壓縮命令。支持windows,unix,liunx。
      zip [OPTION]... 壓縮后的文件名.zip 要進(jìn)行壓縮的源文件
      備注:如果要用zip進(jìn)行壓縮目錄,需要指明目錄下的文件名,如果不指明則會(huì)指壓縮目錄本身。例子:要使用 zip pam.d.zip /etc/pam.d/*
       
      5.tar
      用于打包的工具。能夠把多個(gè)文件打包成一個(gè)文件。tar打包或者展開(kāi)不會(huì)刪除源文件
      1.創(chuàng)建文件 tar -c -f -[jJz] /PATH/TO/SOMEFILE.tar FILE....
      備注:-[jJz]通常只在創(chuàng)建壓縮文件的時(shí)候使用,解壓縮tar會(huì)自動(dòng)調(diào)用對(duì)應(yīng)的壓縮工具實(shí)現(xiàn)解壓
      2.展開(kāi)文件 tar -x -f -[jJz] /PATH/TO/SOMEFILE.tar -C /PATH/TO/DIR
      備注:在展開(kāi)的時(shí)候其實(shí)是可以不用加-j/-z/-J選項(xiàng),tar會(huì)自動(dòng)調(diào)用對(duì)應(yīng)的解壓工具解壓。
      3.不展開(kāi)顯示打包文件的列表 tar -t -f -[jJz] /PATH/TO/SOMEFILE.tar
      備注:在展開(kāi)的時(shí)候其實(shí)是可以不用加-j -z -J 選項(xiàng)的,tar會(huì)自動(dòng)調(diào)用對(duì)應(yīng)的解壓工具解壓。
       
      -c 創(chuàng)建打包文件
      -x 展開(kāi)打包文件
      -t 列出打包文件的文件列表,而不展開(kāi)
       
      -f 指定要?jiǎng)?chuàng)建或展開(kāi)的打包文件路徑
       
      -j 調(diào)用bzip2壓縮工具
      -J 調(diào)用xz壓縮工具
      -z 調(diào)用gzip壓縮工具
      -Z 調(diào)用compress壓縮工具進(jìn)行壓縮
      不允許同時(shí)出現(xiàn),-j -J -z -Z
      -v 顯示過(guò)程
      -p 保留源文件的原始屬性,只有管理員有權(quán)限
      -P 保留絕對(duì)路徑,就是允許貝恩數(shù)據(jù)中含有根目錄。默認(rèn)情況下是自動(dòng)取消根目錄
      --xattrs 保留源文件的擴(kuò)展屬性
       
      -C 把展開(kāi)的文件保存到指定文件下,默認(rèn)為當(dāng)前目錄。
      --exclude=/PATH/TO/{SOMEDIR|SOMEFILE} 排除某些目錄或文件不壓縮

      示例:

       1 #使用-z壓縮
       2 [root@CentOS8 tmp]# tar -zcvf etc.gz /etc/*
       3 tar: Removing leading `/' from member names
       4 /etc/adjtime
       5 tar: Removing leading `/' from hard link targets
       6 /etc/aliases
       7 /etc/alternatives/
       8 ...
       9 #使用-j壓縮,并保留源文件屬性
      10 [root@CentOS8 tmp]# tar -jcvpf etc.bz2 /etc/*
      11 tar: Removing leading `/' from member names
      12 /etc/adjtime
      13 tar: Removing leading `/' from hard link targets
      14 /etc/aliases
      15 /etc/alternatives/
      16 /etc/alternatives/libnssckbi.so.x86_64
      17 ...
      18 #使用-J壓縮,并保留源文件屬性和facl屬性,這里沒(méi)有使用-v選項(xiàng)
      19 [root@CentOS8 tmp]# tar --xattrs -Jcpf etc.xz /etc/*
      20 tar: Removing leading `/' from member names
      21 tar: Removing leading `/' from hard link targets
      22 [root@CentOS8 tmp]# ll
      23 total 11508
      24 -rw-r--r-- 1 root root 3654689 May  3 19:05 etc.bz2
      25 -rw-r--r-- 1 root root 5053462 May  3 19:03 etc.gz
      26 -rw-r--r-- 1 root root 3069780 May  3 19:07 etc.xz
      27 
      28 #使用-C選項(xiàng)指定解壓目錄
      29 [root@CentOS8 tmp]# mkdir test
      30 [root@CentOS8 tmp]# tar xf etc.gz -C /tmp/test

       

       

      6.cpio
      老牌打包解包工具
      -o output模式,打包,將標(biāo)準(zhǔn)輸入傳入的文件名打包發(fā)送到標(biāo)準(zhǔn)輸出
      -i input模式,解包
      -t 預(yù)覽,查看標(biāo)準(zhǔn)輸入傳入的打包文件中的包含的文件列表
      cpio -tv < NAME.cpio
      -A 向已存在的歸檔文件中追加文件
      -v 顯示詳細(xì)過(guò)程
      -d 如果有文件夾自動(dòng)創(chuàng)建,常與-i一起使用,用于解壓時(shí)自動(dòng)創(chuàng)建目錄
      cpio -idv < etc.cpio
      -F filename 使用指定的文件名代替標(biāo)準(zhǔn)輸入或輸出
      -I filename 對(duì)指定的歸檔文件名解壓
      -O filename 輸出到指定歸檔文件名

       

       1 #示例演示cpio不會(huì)區(qū)分絕對(duì)路徑和相對(duì)路徑
       2 [root@CentOS8 /]# find ./etc | cpio -H newc -o > /tmp/etc.cpio
       3 40756 blocks
       4 [root@CentOS8 /]# find /etc | cpio -H newc -o > /tmp/etc2.cpio
       5 40757 blocks
       6 [root@CentOS8 /]# cd /tmp
       7 [root@CentOS8 tmp]# ls
       8 boot.cpio  etc2.cpio  etc.cpio
       9 [root@CentOS8 tmp]# cpio -tv < etc.cpio 
      10 drwxr-xr-x  78 root     root            0 May  3 18:14 etc
      11 lrwxrwxrwx   1 root     root           19 May  2 08:51 etc/mtab -> ../proc/self/mounts
      12 -rw-r--r--   1 root     root          615 May  2 08:50 etc/fstab
      13 -rw-------   1 root     root            0 May  2 08:50 etc/crypttab
      14 -rw-r--r--   1 root     root           69 May  3 17:31 etc/resolv.conf
      15 。。。
      16 [root@CentOS8 tmp]# cpio -tv < etc2.cpio 
      17 drwxr-xr-x  78 root     root            0 May  3 18:14 /etc
      18 lrwxrwxrwx   1 root     root           19 May  2 08:51 /etc/mtab -> ../proc/self/mounts
      19 -rw-r--r--   1 root     root          615 May  2 08:50 /etc/fstab
      20 -rw-------   1 root     root            0 May  2 08:50 /etc/crypttab
      21 -rw-r--r--   1 root     root           69 May  3 17:31 /etc/resolv.conf
      22 drwxr-xr-x   8 root     root            0 May  2 08:51 /etc/dnf
      23 #對(duì)比發(fā)現(xiàn),使用find /etc生成cpio文件中竟然會(huì)保留根目錄,如果解壓的時(shí)候就會(huì)覆蓋對(duì)應(yīng)根目錄下的文件,很危險(xiǎn)
      24 #而使用find ./etc生成的cpio文件中沒(méi)有保留根目錄。
      25 
      26 #解壓etc.cpio
      27 [root@CentOS8 tmp]# ls
      28 boot.cpio  etc2.cpio  etc.cpio
      29 [root@CentOS8 tmp]# mkdir test
      30 [root@CentOS8 tmp]# cd test
      31 [root@CentOS8 test]# cpio -id <../etc.cpio 
      32 40756 blocks
      33 [root@CentOS8 test]# ls
      34 etc

       

       

      關(guān)于時(shí)間成本:
      通過(guò)下面小示例可以看到,使用gzip、bzip2、xz壓縮同一個(gè)文件,耗費(fèi)的時(shí)間長(zhǎng)短。xz消耗的時(shí)間最長(zhǎng),gzip消耗的時(shí)間最短。
       1 [root@CentOS8 tmp]# rm -fr *
       2 [root@CentOS8 tmp]# ls
       3 [root@CentOS8 tmp]# cp /etc/services .
       4 [root@CentOS8 tmp]# ls
       5 services
       6 [root@CentOS8 tmp]# time gzip -k services ;time bzip2 -k services ;time xz -k services 
       7 
       8 real    0m0.016s  #使用gzip壓縮消耗的時(shí)間0.016s
       9 user    0m0.013s
      10 sys    0m0.003s
      11 
      12 real    0m0.036s  #使用bzip2壓縮消耗的時(shí)間0.036s
      13 user    0m0.025s
      14 sys    0m0.010s
      15 
      16 real    0m0.184s  #使用xz壓縮消耗的時(shí)間0.184s
      17 user    0m0.107s
      18 sys    0m0.077s
      19 [root@CentOS8 tmp]# ll
      20 total 1052
      21 -rw-r--r-- 1 root root 692241 May  3 18:36 services
      22 -rw-r--r-- 1 root root 129788 May  3 18:36 services.bz2
      23 -rw-r--r-- 1 root root 142549 May  3 18:36 services.gz
      24 -rw-r--r-- 1 root root 105872 May  3 18:36 services.xz

       

       

      總結(jié)一下:

      linux中常見(jiàn)的壓縮文件的擴(kuò)展名:*.gz  *.bz2  *.xz  *.tar  *.tar.gz  *.tar.bz2  *.tar.xz  *.tgz  *.Z  *.tar.Z

      常見(jiàn)的壓縮命令有:gzip bzip2 xz。其中壓縮比率最好的是xz,但是消耗的時(shí)間也是最高的。需要綜合考慮時(shí)間成本和CPU性能。

        幾個(gè)選項(xiàng)基本上都通用:-d 解壓 -v 顯示詳細(xì)過(guò)程 -c 輸出內(nèi)容到屏幕 -k保留源文件

      tar可以打包文件和目錄,打包時(shí)可以調(diào)用gzip bzip2 xz進(jìn)行壓縮

        壓縮:  tar -[zjJ]cv -f filename.后綴  要被壓縮的文件或目錄

        查詢:  tar -[zjJ]tv -f filename.后綴

        解壓:  tar -[zjJ]xv -f filename.后綴 -C /PATH/TO/SOMEDIR

      cpio命令在壓縮的時(shí)候需要配合find命令一起使用。注意使用相對(duì)路徑

       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多