Linux歸檔和壓縮

歸檔,也稱爲打包,指的是一個文件或目錄的集合,而這個集合被存儲在一個文件中。歸檔文件沒有通過壓縮,所以,它佔用的空間是其中全部文件和目錄的總和。
算法

壓縮是指利用算法將文件進行處理,已達到保留最大文件信息,而讓文件體積變小的目的。其基本原理爲,經過查找文件內的重複字節,創建一個相同字節的詞典文件,並用一個代碼表示。好比說,在壓縮文件中,有不止一處出現了 "你好、世界",那麼,在壓縮文件時,這個詞就會用一個代碼表示並寫入詞典文件,這樣就能夠實現縮小文件體積的目的。ide

Linux 下,經常使用歸檔命令有 2 個,分別是 tar 和 dd(相對而言,tar 的使用更爲普遍);經常使用的壓縮命令有不少,好比 gzip、zip、bzip2 等。這些命令的詳細用法,後續文件會作一一介紹。測試

tar命令作打包操做spa

當 tar 命令用於打包操做時,該命令的基本格式爲:orm

[root@localhost ~]#tar [選項] 源文件或目錄遞歸

此命令經常使用的選項及各自的含義如表 1 所示。
ip

表 1 tar 打包命令經常使用選項及含義
選項 含義
-c 將多個文件或目錄進行打包。
-A 追加 tar 文件到歸檔文件。
-f 包名 指定包的文件名。包的擴展名是用來給管理員識別格式的,因此必定要正確指定擴展名;
-v 顯示打包文件過程;

須要注意的是,在使用 tar 命令指定選項時能夠不在選項前面輸入「-」。例如,使用「cvf」選項和 「-cvf」起到的做用同樣。it

tar命令作解打包操做io

當 tar 命令用於對 tar 包作解打包操做時,該命令的基本格式以下:table

[root@localhost ~]#tar [選項] 壓縮包

當用於解打包時,經常使用的選項與含義如表 2 所示。

表 2 tar 解打包經常使用選項及含義
選項 含義
-x 對 tar 包作解打包操做。
-f 指定要解壓的 tar 包的包名。
-t 只查看 tar 包中有哪些文件或目錄,不對 tar 包作解打包操做。
-C 目錄 指定解打包位置。
-v 顯示解打包的具體過程。

tar命令作打包壓縮(解壓縮解打包)操做

當 tar 命令同時作打包壓縮的操做時,其基本格式以下:

[root@localhost ~]#tar [選項] 壓縮包 源文件或目錄

此處經常使用的選項有如下 2 個,分別是:

  • -z:壓縮和解壓縮 ".tar.gz" 格式;

  • -j:壓縮和解壓縮 ".tar.bz2"格式。

zip 命令

相似於 Windows 系統中的 winzip 壓縮程序,其基本格式以下:

[root@localhost ~]#zip [選項] 壓縮包名 源文件或源目錄列表

注意,zip 壓縮命令須要手工指定壓縮以後的壓縮包名,注意寫清楚擴展名,以便解壓縮時使用。
該命令經常使用的幾個選項及各自的含義如表 1 所示。

表 1 zip 命令經常使用選項及含義
選項 含義
-r 遞歸壓縮目錄,及將制定目錄下的全部文件以及子目錄所有壓縮。
-m 將文件壓縮以後,刪除原始文件,至關於把文件移到壓縮文件中。
-v 顯示詳細的壓縮過程信息。
-q 在壓縮的時候不顯示命令的執行過程。
-壓縮級別 壓縮級別是從 1~9 的數字,-1 表明壓縮速度更快,-9 表明壓縮效果更好。
-u 更新壓縮文件,即往壓縮文件中添加新文件。

unzip 命令

unzip 命令能夠查看和解壓縮 zip 文件。該命令的基本格式以下:

[root@localhost ~]# unzip [選項] 壓縮包名

此命令經常使用的選項以及各自的含義如表 1 所示。

表 1 unzip 命令經常使用選項及含義
選項 含義
-d 目錄名 將壓縮文件解壓到指定目錄下。
-n 解壓時並不覆蓋已經存在的文件。
-o 解壓時覆蓋已經存在的文件,而且無需用戶確認。
-v 查看壓縮文件的詳細信息,包括壓縮文件中包含的文件大小、文件名以及壓縮比等,但並不作解壓操做。
-t 測試壓縮文件有無損壞,但並不解壓。
-x 文件列表 解壓文件,但不包含文件列表中指定的文件。

gzip命令

gzip 是 Linux 系統中常常用來對文件進行壓縮和解壓縮的命令,經過此命令壓縮獲得的新文件,其擴展名一般標記爲「.gz」。

再強調一下,gzip 命令只能用來壓縮文件,不能壓縮目錄,即使指定了目錄,也只能壓縮目錄內的全部文件。

gzip 命令的基本格式以下:

[root@localhost ~]# gzip [選項] 源文件

命令中的源文件,當進行壓縮操做時,指的是普通文件;當進行解壓縮操做時,指的是壓縮文件。該命令經常使用的選項及含義如表 1 所示。

表 1 gzip 命令經常使用選項及含義
選項 含義
-c 將壓縮數據輸出到標準輸出中,並保留源文件。
-d 對壓縮文件進行解壓縮。
-r 遞歸壓縮指定目錄下以及子目錄下的全部文件。
-v 對於每一個壓縮和解壓縮的文件,顯示相應的文件名和壓縮比。
-l 對每個壓縮文件,顯示如下字段:
  • 壓縮文件的大小;

  • 未壓縮文件的大小;

  • 壓縮比;

  • 未壓縮文件的名稱。

-數字 用於指定壓縮等級,-1 壓縮等級最低,壓縮比最差;-9 壓縮比最高。默認壓縮比是 -6。

gunzip命令

gunzip 是一個使用普遍的解壓縮命令,它用於解壓被 gzip 壓縮過的文件(擴展名爲 .gz)。

對於解壓被 gzip 壓縮過的文件,還可使用 gzip 本身,即 gzip -d 壓縮包。

gunzip 命令的基本格式爲:

[root@localhost ~]# gunzip [選項] 文件

該命令經常使用的選項及含義如表 1 所示。

表 1 gunzip 命令經常使用選項及含義
選項 含義
-r 遞歸處理,解壓縮指定目錄下以及子目錄下的全部文件。
-c 把解壓縮後的文件輸出到標準輸出設備。
-f 強制解壓縮文件,不理會文件是否已存在等狀況。
-l 列出壓縮文件內容。
-v 顯示命令執行過程。
-t 測試壓縮文件是否正常,但不對其作解壓縮操做。

bzip2 命令

bzip2 命令同 gzip 命令相似,只能對文件進行壓縮(或解壓縮),對於目錄只能壓縮(或解壓縮)該目錄及子目錄下的全部文件。當執行壓縮任務完成後,會生成一個以「.bz2」爲後綴的壓縮包。
".bz2"格式是 Linux 的另外一種壓縮格式,從理論上來說,".bz2"格式的算法更先進、壓縮比更好;而 ".gz"格式相對來說的時間更快。
bzip2 命令的基本格式以下:

[root@localhost ~]# bzip2 [選項] 源文件

源文件指的要壓縮或解壓縮的文件,該命令經常使用的選項及各自的含義如表 1 所示。

表 1 bzip2 命令經常使用選項及含義
選項 含義
-d 執行解壓縮,此時該選項後的源文件應爲標記有 .bz2 後綴的壓縮包文件。
-k bzip2 在壓縮或解壓縮任務完成後,會刪除原始文件,若要保留原始文件,可以使用此選項。
-f bzip2 在壓縮或解壓縮時,若輸出文件與現有文件同名,默認不會覆蓋現有文件,若使用此選項,則會強制覆蓋現有文件。
-t 測試壓縮包文件的完整性。
-v 壓縮或解壓縮文件時,顯示詳細信息。
-數字 這個參數和 gzip 命令的做用同樣,用於指定壓縮等級,-1 壓縮等級最低,壓縮比最差;-9 壓縮比最高

注意,gzip 只是不會打包目錄,可是若是使用「-r」選項,則能夠分別壓縮目錄下的每一個文件;而 bzip2 命令則根本不支持壓縮目錄,也沒有「-r」選項。

bunzip2命令

要解壓「.bz2」格式的壓縮包文件,除了使用「bzip2 -d 壓縮包名」命令外,還可使用 bunzip2 命令。
bunzip2 命令的使用和 gunzip 命令大體相同,bunzip2 命令只能用於解壓文件,即使解壓目錄,也是解壓該目錄以及所含子目錄下的全部文件。
bunzip2 命令的基本格式爲:

[root@localhost ~]# bunzip2 [選項] 源文件

此命令經常使用的選項以及各自的含義,如表 1 所示。

表 1 bunzip2 命令選項及含義
選項 含義
-k 解壓縮後,默認會刪除原來的壓縮文件。若要保留壓縮文件,需使用此參數。
-f 解壓縮時,若輸出的文件與現有文件同名時,默認不會覆蓋現有的文件。若要覆蓋,可以使用此選項。
-v 顯示命令執行過程。
-L 列出壓縮文件內容。
相關文章
相關標籤/搜索