天天看點

Linux檔案壓縮與歸檔

一、壓縮和解壓縮工具

    一般壓縮的對象的是:ascii檔案

    壓縮比:壓縮前後的size比例

        含義:把相同的内容,進行替換為簡單的字元//很多壓縮算法

        目的:時間換空間{CPU時間}

    compress/uncompress  , .Z 字尾

    gzip/gunzip        , .gz

    bzip2/bunzip2  , .bz2

    xz/unxz  ,  .xz

    zip/unzip

    tar,cpio

    1.gzip/gunzip/zcat

        gzip a//會删除原有檔案

        gunzip a.gz //會删除壓縮檔案

        zcat a.gz //自動臨時解壓,并檢視,檔案太大的話,建議不要使用zcat,因為要占用大量的記憶體

        -d :解壓縮,相當于gunzip

        -# :指定壓縮比,數字越大,壓縮比越大,預設是6(1-9)

            gzip -9 aa

        -c :輸出到螢幕,并保留源檔案

            gzip -c aa > aa.gz

    2.bzip2/bunzip2/bzcat

        bzip2 a //會删除源檔案

        -d a.bz2 //解壓縮

        -# //指定壓縮比(1-9),預設是6

        -k //keep 保留源檔案

            bzip2 -k a //自動儲存源檔案

    3.xz/unxz/xzcat{.xz} ,lzma/unlzma/lzcat{.lzma}

        -d 解壓縮

        -# 指定 壓縮級别預設6,1-9

        -k 保留源檔案

    //上述都支援壓縮檔案,不支援壓縮目錄

二、歸檔工具:tar,cpio

    tar [OPTION] ... FILE ...

        -c 建立歸檔

            -f 指定檔案路徑和名字

            cf a.tar a

        -x 展開歸檔

            tar xf a.tar -C /tmp/test //指定其他路徑

        -t 檢視歸檔檔案的檔案清單

            tar -tf a.tar

        -r //apend 添加新的檔案到tar檔案

            tar -r test/messages log.tar

    cpio //3種模式

        cpio-out:從标準輸入獲得檔案名清單 (一行一個)。預設把歸檔包寫到标準輸出,是以一般重定向到 一個檔案中

        copy-in模式中, cpio 從歸檔包裡讀取檔案, 或者列出歸檔包裡的内容。它從标準輸入讀入歸檔包

        copy-pass模式中, cpio把檔案從一棵目錄樹複制到另一棵, 它結合了 copy-in 和 copy-out 的操作, 但不使用歸檔包。

        預設情況下,cpio從标準輸入讀取輸入資料,向标準輸出寫入輸出資料。

        -o或--create:執行copy-out模式,建立備份檔

        -c:使用舊ASCII備份格式;

        -v:verbose

        -B:将輸入/輸出的區塊大小改成5210Bytes;

        -i或--extract:執行copy-in模式,還原備份檔;

        -d或--make-directories:如有需要cpio會自行建立目錄;

        -t或--list:将輸入的内容呈現出來;

        将/etc下的所有普通檔案都備份到/opt/etc.cpio,使用以下指令:

        find /etc –type f | cpio –ocvB >/opt/etc.cpio

        cpio –icduv 《 /opt/etc.cpio  //有時可能因為備份的檔案過多,一個螢幕無法顯示完畢,此時我們利用下面指令,讓錄音帶機的檔案資訊輸出到檔案。    

        将系統上所有資料備份到錄音帶機内,使用以下指令:

        find / -print | cpio -covB > /dev/st0 這裡的/dev/st0是錄音帶的裝置名,代表SCSI錄音帶機。

        檢視上例錄音帶機上備份的檔案,使用以下指令:

        cpio -icdvt 《 /dev/st0 > /tmp/st_content

三、結合使用:

    -z ;gzip2

        zcf a.tar.gz file ...

        xf a.tar.gz  //展開的時候可以自動識别壓縮格式

    -j :bzip2

        -jcf

        -jxf

    -J :xz

        -Jcf

        -Jxf

四、zip/unzip

    通用壓縮工具,但是性能一般

    本身既能歸檔,也能壓縮

    zip test.zip /test/

    unzip test.zip

繼續閱讀