[code]$ zip -r -q -o jly.zip /home/jly $ du -h jly.zip $ file jly.zip上面命令將 jly的 home 目錄打包成一個文件,並查看了打包後文件的大小和類型。第一行命令中,-r參數表示遞歸打包包含子目錄的全部內容,-q參數表示為安靜模式,即不向屏幕輸出信息,-o,表示輸出文件,需在其後緊跟打包輸出文件名。後面使用du命令查看打包後文件的大小(後面會具體說明該命令)。
設置壓縮級別為9和1(9最大,1最小),重新打包:
[code]$ zip -r -9 -q -o jly_9.zip /home/jly -x ~/*.zip $ zip -r -1 -q -o jly_1.zip /home/jly -x ~/*.zip這裡添加了一個參數用於設置壓縮級別-[1-9],1表示最快壓縮但體積大,9表示體積最小但耗時最久。最後那個-x是為了排除我們上一次創建的 zip 文件,否則又會被打包進這一次的壓縮文件中,注意:這裡只能使用絕對路徑,否則不起作用。我們再用du命令分別查看默認壓縮級別、最低、最高壓縮級別及未壓縮的文件的大小:
[code]$ du -h -d 0 *.zip ~ | sort注意: 關於zip命令,因為 Windows 系統與 Linux/Unix 在文本文件格式上的一些兼容問題,比如換行符(為不可見字符),在 Windows 為 CR+LF(Carriage-Return+Line-Feed:回車加換行),而在 Linux/Unix 上為 LF(換行),所以如果在不加處理的情況下,在 Linux 上編輯的文本,在 Windows 系統上打開可能看起來是沒有換行的。如果你想讓你在 Linux 創建的 zip 壓縮文件在 Windows 上解壓後沒有任何問題,那麼你還需要對命令做一些修改:
[code]$ zip -r -l -o jly.zip /home/jly需要加上-l參數將LF轉換為CR+LF來達到以上目的。
[code]$ unzip -q shiyanlou.zip -d ziptest
上述指定目錄不存在,將會自動創建。如果你不想解壓只想查看壓縮包的內容你可以使用-l參數:
[code]$ unzip -l jly.zip注意: 使用unzip解壓文件時我們同樣應該注意兼容問題,不過這裡我們關心的不再是上面的問題,而是中文編碼的問題,通常 Windows 系統上面創建的壓縮文件,如果有有包含中文的文檔或以中文作為文件名的文件時默認會采用 GBK 或其它編碼,而 Linux 上面默認使用的是 UTF-8 編碼,如果不加任何處理,直接解壓的話可能會出現中文亂碼的問題(有時候它會自動幫你處理),為了解決這個問題,我們可以在解壓時指定編碼類型。
使用-O(英文字母,大寫o)參數指定編碼類型:
[code]unzip -O GBK 中文壓縮文件.zip
注意:rar 的命令參數沒有-,如果加上會報錯
從指定壓縮包文件中刪除某個文件:
[code]$ rar d jly.rar .zshrc查看不解壓文件
[code]$ rar l jly.rar使用unrar解壓rar文件
全路徑解壓
[code]$ unrar x jly.rar去掉路徑解壓:
[code]$ mkdir tmp $ unrar e jly.rar tmp/
下面先掌握tar命令一些基本的使用方式,即不進行壓縮只是進行打包(創建歸檔文件)和解包的操作。
創建一個 tar 包:
[code]$ tar -cf jly.tar ~上面命令中,-c表示創建一個 tar 包文件,-f用於指定創建的文件名,注意文件名必須緊跟在-f參數之後,比如不能寫成tar -fc jly.tar,可以寫成tar -f jly.tar -c ~。你還可以加上-v參數以可視的的方式輸出打包的文件。上面會自動去掉表示絕對路徑的/,你也可以使用-P保留絕對路徑符。
解包一個文件(-x參數)到指定路徑的已存在目錄(-C參數):
[code]$ mkdir tardir $ tar -xf jly.tar -C tardir只查看不解包文件-t參數:
[code]$ tar -tf jly.tar保留文件屬性和跟隨鏈接(符號鏈接或軟鏈接),有時候我們使用tar備份文件當你在其他主機還原時希望保留文件的屬性(-p參數)和備份鏈接指向的源文件而不是鏈接本身(-h參數):
[code]$ tar -cphf etc.tar /etc對於創建不同的壓縮格式的文件,對於tar來說是相當簡單的,需要的只是換一個參數,這裡我們就以使用gzip工具創建*.tar.gz文件為例來說明。
我們只需要在創建 tar 文件的基礎上添加-z參數,使用gzip來壓縮文件:
[code]$ tar -czf jly.tar.gz ~解壓*.tar.gz文件:
[code]$ tar -xzf jly.tar.gz