1. 程式人生 > >linux中檔案壓縮與打包

linux中檔案壓縮與打包

.常見的壓縮命令

    在linux環境中,壓縮檔案的副檔名大多是*.tar,*.tar.gz,*.tgz,*.gz,*.Z,*.bz2,首先我們來介紹以下這些壓縮文案的副檔名:、

    *.Z:compress程式壓縮的檔案

    *.gz:gzip程式壓縮的檔案

    *.bz2:bzip2程式壓縮的檔案愛你

    *.tar:tar程式打包的資料,並沒有壓縮過

    *.tar.gz:tar程式打包的檔案,其中經過gzip的壓縮

    *.tar.bz2:tar程式打包的檔案,其中經過bzip2的壓縮

接下來,我們開始介紹壓縮命令:

 

1.Compress

格式:compress [-rcv] 檔案或目錄     ##壓縮

      uncompress 檔案.Z             ##解壓縮

-r:可以連同目錄下的檔案也同時給予壓縮

-c:將壓縮資料輸出成為 standard output (輸出到螢幕)

-v:可以顯示出壓縮後的檔案資訊以及壓縮過程中的一些檔名變化

 

2.gzip,zcat

格式:gzip [-cdtv#] 檔名

      zcat 檔名.gz

-c:將壓縮的資料輸出到螢幕上,可通過資料流重定向來處理

-d:解壓縮的引數

-t:可以用來檢驗一個壓縮我呢見的一致性,看看檔案有無錯誤

-v:可以顯示出原始檔/壓縮檔案的壓縮比等資訊

-#:壓縮等級,-1最快,但是壓縮比最差,-9最慢,但是壓縮比最好預設時-6

 

3.bzip2,bzcat

格式:bzip2 [-cdkzv#] 檔名

      bzcat 檔名.bz2

-c:將壓縮過程中產生的資料輸出到螢幕上

-d:解壓縮引數

-k:保留原檔案,而不會刪除原始的檔案

-z:壓縮的引數

-v:可以顯示出原始檔/壓縮檔案的壓縮比等資訊

-#:與gzip同樣,艘時計算壓縮比的引數,-9最佳,-1最快

 

4.打包命令:tar

    tar的引數很多,這裡介紹一部分,更多可以用man tarchaxun

格式:

    tar [-j|-z] [cv] [-f 新建的檔名] filename...    #打包與壓縮

    tar [-j|-z] [tv] [-f 新建的檔名]           #檢視檔名

    tar [-j|-z] [xv] [-f 新建的檔名] [-C 目錄]      #解壓縮

-c:新建打包檔案,可搭配-v來檢視過程中被打包的檔名

-t:檢視打包檔案的內容含有那些檔名,重點在檢視檔名

-x:解打包或解壓縮的功能,可以搭配-C(大寫)指定到特定目錄開啟

    需要留意,-c,-t,-x不可同時出現在同一串命令列中

-j:通過bzip2的支援進行壓縮/解壓縮,此時檔名最好為*.tar.bz2

-z:通過gzip的支援進行壓縮/解壓縮,此時檔名最好為*.tar.gz

-v:在壓縮/解壓縮的過程中,將正在處理的檔名顯示出來

-f filename:-f 後面要接被處理的檔名

-C 目錄:這個引數用在解壓縮時,若要在特定目錄解壓縮,可以使用這個引數

-P:保留備份資料的原本許可權與屬性,常用於備份(-c)重要的配置檔案

-p:保留絕對路徑,即允許備份資料中含有根目錄存在之意

--exclude=FILE:在壓縮的過程中,不要將FILE打包

 

簡單點記憶其實只要記住下面的方式即可:

壓縮:tar -jcf -f filename.tar.bz2 要被壓縮的檔案或目錄名稱

查詢:tar -jtv -f filename.tar.bz2

解壓縮:tar -jxv -f filename.tar.bz2 -C 想要解壓到那個目錄下(若不用-C引數,預設當前)

 

 

5.完整備份工具:dump

    dump引數很多,這裡僅介紹部分:

dump

格式:dump [-Suvj] [-level] [-f 備份檔案] 待備份資料

      dumo -W

-S:僅列出後面的待備份資料需要多少磁碟才能夠備份完畢

-u:將這次dump的時間記錄到/etc/dumpdateS檔案中

-v:將dump的檔案過程顯示出來

-j:加入bzip2地支援,將和資料進行壓縮,預設bzip2壓縮等級為2

-level:從-0~-9公十個等級

-f:有點類似tar',後面接產生的檔案,可接例如/dev/st0裝置檔名等

-W:列出在/etc/fstab裡面的具有dump設定的分割槽是否有備份過

 

 

6.dd命令

格式:dd if="input file" of="output file" bs="block size" count="number"

if:就是input file,也可以時裝置

of:就是output file,也可以是裝置

bs:規劃的一個block的大小,若未指定則一般預設是512bytes

count:多少個bs地意思