在 windows 上最常見的不外乎這三種 .zip,.rar,*.7z 字尾的壓縮檔案。
而在 linux 上面常見的格式除了以上三種外,還有 .gz,.xz,.bz2,.tar,.tar.gz,.tar.xz,*.tar.bz2,簡單介紹如下:
不過我們一般只需要掌握幾個命令即可,包括 zip,rar,tar。
1)使用zip打包資料夾
zip -r -q -o ss.zip /home/ss
du -h ss.zip
file ss.zip
上面命令將目錄 /home/ss 打包成乙個檔案,並檢視了打包後檔案的大小和型別。第一行命令中,-r 引數表示遞迴打包包含子目錄的全部內容,-q 引數表示為安靜模式,即不向螢幕輸出資訊,-o,表示輸出檔案,需在其後緊跟打包輸出檔名。後面使用 du 命令檢視打包後檔案的大小。
2)設定壓縮級別為9和1,9最大,1最小,重新打包。
zip -r -9 -q -o ss_9.zip /home/ss -x ~/*.zip
zip -r -1 -q -o ss_1.zip /home/ss -x ~/*.zip
新增了乙個引數用於設定壓縮級別 -[1-9],1 表示最快壓縮但體積大,9 表示體積最小但耗時最久。最後那個 -x 是為了排除我們上一次建立的 zip 檔案,否則又會被打包進這一次的壓縮檔案中.
注意:這裡只能使用絕對路徑,否則不起作用。
再用 du 命令分別檢視預設壓縮級別、最低、最高壓縮級別及未壓縮的檔案的大小:
du -h -p 0 *.zip ~ | sort
注意空格
通過 man 手冊可知:
h, –human-readable(顧名思義,你可以試試不加的情況)
d, –max-depth(所檢視檔案的深度)
你可以看到預設壓縮級別應該是最高的,效果很明顯。
3)建立加密zip 包
使用-e引數可建立加密壓縮包
zip -r -e -o ss_sec.zip /home/ss
後面還要輸入密碼。
關於 zip 命令,因為 windows 系統與 linux/unix 在文字檔案格式上的一些相容問題,比如換行符(為不可見字元),在 windows 為 cr+lf(carriage-return+line-feed:回車加換行),而在 linux/unix 上為 lf(換行),所以如果在不加處理的情況下,在 linux 上編輯的文字,在 windows 系統上開啟可能看起來是沒有換行的。如果你想讓你在 linux 建立的 zip 壓縮檔案在 windows 上解壓後沒有任何問題,那麼你還需要對命令做一些修改:
zip -r -1 -o ss.zip /home/ss
需要加上 -l 引數將 lf 轉換為 cr+lf 來達到以上目的。
將ss.zip 解壓到當前目錄:
unzip ss.zip
使用安靜模式,將檔案解壓到指定目錄:
unzip -q ss.zip -d ziptest
ls -r ziptest
上述指定目錄不存在,將會自動建立。如果你不想解壓只想檢視壓縮包的內容你可以使用 -l 引數:
unzip -l ss.zip
注意:使用 unzip 解壓檔案時我們同樣應該注意相容問題,不過這裡我們關心的不再是上面的問題,而是中文編碼的問題,通常 windows 系統上面建立的壓縮檔案,如果有有包含中文的文件或以中文作為檔名的檔案時缺省會採用 gbk 或其它編碼,而 linux 上面預設使用的是 utf-8 編碼,如果不加任何處理,直接解壓的話可能會出現中文亂碼的問題(有時候它會自動幫你處理),為了解決這個問題,我們可以在解壓時指定編碼型別。
使用 -o(英文本母,大寫 o)引數指定編碼型別:
unzip -o gbk 中文壓縮檔案.zip
rar 也是 windows 上常用的一種壓縮檔案格式,在 linux 上可以使用 rar 和 unrar 工具分別建立和解壓 rar 壓縮包。
1)安裝rar \ unrar
sudo apt-get update
sudo apt-get install rar unrar
從指定檔案或目錄建立壓縮包或新增檔案到壓縮包:
rm *.zip
rar a ss.rar .
上面的命令使用 a 引數新增乙個目錄 ~ 到乙個歸檔檔案中,如果該檔案不存在就會自動建立。
注意:rar 的命令引數沒有 -,如果加上會報錯。
rar d ss.rar .zshrc
rar 1 ss.rar
全路徑解壓:
unrar x ss.rar
去掉路徑解壓:
mkdir tmp
unrar e ss.rar tmp/
rar 命令引數非常多,上面只涉及了一些基本操作。
在 linux 上面更常用的是 tar 工具,tar 原本只是乙個打包工具,只是同時還是實現了對 7z、gzip、xz、bzip2 等工具的支援,這些壓縮工具本身只能實現對檔案或目錄(單獨壓縮目錄中的檔案)的壓縮,沒有實現對檔案的打包壓縮,所以我們也無需再單獨去學習其他幾個工具,tar 的解壓和壓縮都是同乙個命令,只需引數不同,使用比較方便。
下面先掌握 tar 命令一些基本的使用方式,即不進行壓縮只是進行打包(建立歸檔檔案)和解包的操作。
上面命令中,-c 表示建立乙個 tar 包檔案,-f 用於指定建立的檔名,注意檔名必須緊跟在 -f 引數之後,比如不能寫成 tar -fc shiyanlou.tar,可以寫成 tar -f shiyanlou.tar -c ~。你還可以加上 -v 引數以可視的的方式輸出打包的檔案。上面會自動去掉表示絕對路徑的 /,你也可以使用 -p 保留絕對路徑符。
du -h ss.tar
可看到檔案大小和目錄實際大小一致表示沒有壓縮,只是打包。
mkdir tardir
tar -xf ss.tar -c tardir
tar -tf ss.tar
tar -cphf etc.tar /etc
對於建立不同的壓縮格式的檔案,對於 tar 來說是相當簡單的,需要的只是換乙個引數,使用 gzip 工具建立*.tar.gz 檔案為例來說明。
tar -czf ss.tar.gz ~
tar -xzf ss.tar.gz
現在我們要使用其它的壓縮工具建立或解壓相應檔案只需要更改乙個引數即可:
壓縮檔案格式 引數
*.tar.gz -z
*.tar.xz -j
*tar.bz2 -j
常用:
Linux學習筆記 6 檔案的壓縮與打包
1 檔案壓縮指通過壓縮演算法將檔案的體積縮小,同時會將多個檔案合併至一起方便交換 傳輸 2 檔案打包指將多個檔案或者整個目錄合併成乙個檔案,用來進行檔案的備份 分發 傳輸等。3 linux支援的壓縮格式 z,compress程式壓縮檔案。現在用得比較少 gz,gzip程式壓縮檔案。現在用得比較多,為...
Linux基礎(6) 檔案打包與解壓縮
檔案打包和解壓縮 常用的壓縮包檔案格式 tables are檔案字尾名 說明 zip zip程式打包壓縮的檔案 rar rar程式壓縮的檔案 7z 7zip程式壓縮的檔案 tar tar程式打包,未壓縮的檔案 gz gzip程式 gnu zip 壓縮的檔案 xz xz程式壓縮的檔案 bz2 bzip...
4 2 檔案的壓縮與打包
compress compress命令用於將檔案壓縮為 z 格式的壓縮檔案。語法 compress 選項 檔案 選項 d 解壓縮,相當於uncompress c 結果輸出至標準輸出,不刪除原檔案 v 顯示詳情 gzip gzip命令用於將檔案壓縮為 gz 格式的壓縮檔案。語法 gzip 選項 檔案 ...