文件打包與壓縮(第6節)

“Linux 基礎入門(新版)”實驗報告

文件打包與解壓縮

文件打包與壓縮(主要zip、rar、tar)

二。概念講解

1.linux常見壓縮包文件格式

.zip,.rar,.7z 、.gz,.xz,.bz2,.tar,.tar.gz,.tar.xz,tar.bz2、

文件后綴名 說明

.zip zip 程序打包壓縮的文件

.rar rar 程序壓縮的文件

.7z 7zip 程序壓縮的文件

.tar tar 程序打包,未壓縮的文件

.gz gzip 程序(GNU zip)壓縮的文件

.xz xz 程序壓縮的文件

.bz2 bzip2 程序壓縮的文件

.tar.gz tar 打包,gzip 程序壓縮的文件

.tar.xz tar 打包,xz 程序壓縮的文件

tar.bz2 tar 打包,bzip2 程序壓縮的文件

*.tar.7z tar 打包,7z 程序壓縮的文件

三。實戰

1.zip壓縮打包程序

$ zip -r -q -o shiyanlou.zip /home/shiyanlou

$ du -h shiyanlou.zip

$ file shiyanlou.zip上面命令將 shiyanlou 的 home 目錄打包成一個文件,并查看了打包后文件的大小和類型

第一行命令中,-r 參數表示遞歸打包包含子目錄的全部內容,-q 參數表示為安靜模式,即不向屏幕輸出信息,-o,表示輸出文件,需在其后緊跟打包輸出文件名。后面使用 du 命令查看打包后文件的大小(后面會具體說明該命令)。

(1)設置壓縮級別為 9 和 1(9 最大,1 最小),重新打包:

$ zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/.zip

$ zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou -x ~/.zip

這里添加了一個參數用于設置壓縮級別 -[1-9],1 表示最快壓縮但體積大,9 表示體積最小但耗時最久。最后那個 -x 是為了排除我們上一次創建的 zip 文件,否則又會被打包進這一次的壓縮文件中,注意:這里只能使用絕對路徑,否則不起作用。

(2)du命令使用$ du -h -d 0 *.zip ~ | sort 查看默認壓縮級別以及最低最高壓縮級別和為壓縮文件的大小

zip格式中“-”號要加

h必加,d代表所查看文件的深度

(3)創建加密 zip 包:使用 -e 參數可以創建加密壓縮包

$ zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou

(4)兼容問題

關于 zip 命令,因為 Windows 系統與 Linux/Unix 在文本文件格式上的一些兼容問題,比如換行符(為不可見字符),在 Windows 為 CR+LF(Carriage-Return+Line-Feed:回車加換行),而在 Linux/Unix 上為 LF(換行),所以如果在不加處理的情況下,在 Linux 上編輯的文本,在 Windows 系統上打開可能看起來是沒有換行的。如果你想讓你在 Linux 創建的 zip 壓縮文件在 Windows 上解壓后沒有任何問題,那么你還需要對命令做一些修改:

$ zip -r -l -o shiyanlou.zip /home/shiyanlou

需要加上 -l 參數將 LF 轉換為 CR+LF 來達到以上目的

3.2 使用 unzip 命令解壓縮 zip 文件

將 shiyanlou.zip 解壓到當前目錄:

$ unzip shiyanlou.zip

使用安靜模式,將文件解壓到指定目錄:

$ unzip -q shiyanlou.zip -d ziptest

上述指定目錄不存在,將會自動創建。如果你不想解壓只想查看壓縮包的內容你可以使用 -l 參數:

兼容問題:

注意: 使用 unzip 解壓文件時我們同樣應該注意兼容問題,不過這里我們關心的不再是上面的問題,而是中文編碼的問題,通常 Windows 系統上面創建的壓縮文件,如果有有包含中文的文檔或以中文作為文件名的文件時默認會采用 GBK 或其它編碼,而 Linux 上面默認使用的是 UTF-8 編碼,如果不加任何處理,直接解壓的話可能會出現中文亂碼的問題(有時候它會自動幫你處理),為了解決這個問題,我們可以在解壓時指定編碼類型。

使用 -O(英文字母,大寫 o)參數指定編碼類型

unzip -O GBK 中文壓縮文件.zip

3.3 rar 打包壓縮命令

rar 也是 Windows 上常用的一種壓縮文件格式,在 Linux 上可以使用 rar 和 unrar 工具分別創建和解壓 rar 壓縮包。

(1).安裝 rar 和 unrar 工具:

$ sudo apt-get update

$ sudo apt-get install rar unrar

(2).從指定文件或目錄創建壓縮包或添加文件到壓縮包:

$ rm *.zip

$ rar a shiyanlou.rar .

注意:rar 的命令參數沒有 -,如果加上會報錯。

從指定壓縮包文件中刪除某個文件:

$ rar d shiyanlou.rar .zshrc

(3)使用 unrar 解壓 rar 文件

全路徑解壓:$ unrar x shiyanlou.rar

去掉路徑解壓:$ mkdir tmp

$ unrar e shiyanlou.rar tmp/

3.4 tar 打包工具

tar 原本只是一個打包工具,只是同時還是實現了對 7z、gzip、xz、bzip2 等工具的支持,這些壓縮工具本身只能實現對文件或目錄(單獨壓縮目錄中的文件)的壓縮,沒有實現對文件的打包壓縮,所以我們也無需再單獨去學習其他幾個工具,tar 的解壓和壓縮都是同一個命令,只需參數不同,使用比較方便。

1.創建一個tar包

$ tar -cf shiyanlou.tar ~

-c 表示創建一個 tar 包文件,-f 用于指定創建的文件名,注意文件名必須緊跟在 -f 參數之后,比如不能寫成 tar -fc shiyanlou.tar,可以寫成 tar -f shiyanlou.tar -c ~。你還可以加上 -v 參數以可視的的方式輸出打包的文件。上面會自動去掉表示絕對路徑的 /,你也可以使用 -P 保留絕對路徑符。

四。

總結

常用命令:

zip:

打包 :zip something.zip something (目錄請加 -r 參數)

解包:unzip something

指定路徑:-d 參數

tar:

打包:tar -zcvf something.tar something

解包:tar -zxvf something.tar

指定路徑:-C 參數

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容