Linux歸檔和壓縮

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

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

Linux 下,常用歸檔命令有 2 個,分別是 tar 和 dd(相對而言,tar 的使用更爲廣泛);常用的壓縮命令有很多,比如 gzip、zip、bzip2 等。這些命令的詳細用法,後續文件會做一一介紹。

tar命令做打包操作

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

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

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

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

需要注意的是,在使用 tar 命令指定選項時可以不在選項前面輸入“-”。例如,使用“cvf”選項和 “-cvf”起到的作用一樣。

tar命令做解打包操作

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

[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 後綴的壓縮包文件。
-kbzip2 在壓縮或解壓縮任務完成後,會刪除原始文件,若要保留原始文件,可使用此選項。
-fbzip2 在壓縮或解壓縮時,若輸出文件與現有文件同名,默認不會覆蓋現有文件,若使用此選項,則會強制覆蓋現有文件。
-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列出壓縮文件內容。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章