linux壓縮命令:1、tar命令,附加一個“z”壓縮選項即可,語法“tar -z 壓縮包 源文件或目錄”;2、zip命令,可創(chuàng)建一個壓縮文件,與此同時保留原始文件的完整性,語法“zip [選項] 壓縮包名 源文件或源目錄列表”;3、gzip命令,語法“gzip [選項] 源文件”;4、bzip2命令,語法“bzip2 [選項] 源文件”;5、xz命令,語法“xz 壓縮包名”。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux中壓縮是什么
壓縮是指利用算法將文件進行處理,已達到保留最大文件信息,而讓文件體積變小的目的。其基本原理為,通過查找文件內(nèi)的重復(fù)字節(jié),建立一個相同字節(jié)的詞典文件,并用一個代碼表示。
壓縮和歸檔文件類似,壓縮文件也是一個文件和目錄的集合,且這個集合也被存儲在一個文件中,但它們的不同之處在于,壓縮文件采用了不同的存儲方式,使其所占用的磁盤空間比集合中所有文件大小的總和要小。
由于計算機處理的信息是以二進制的形式表示的,因此,壓縮軟件就是把二進制信息中相同的字符串以特殊字符標記,只要通過合理的數(shù)學(xué)計算,文件的體積就能夠被大大壓縮。把一個或者多個文件用壓縮軟件進行壓縮,形成一個文件壓縮包,既可以節(jié)省存儲空間,有方便在網(wǎng)絡(luò)上傳送。
對文件進行壓縮,很可能損壞文件中的內(nèi)容,因此,壓縮又可以分為有損壓縮和無損壓縮。無損壓縮很好理解,指的是壓縮數(shù)據(jù)必須準確無誤;有損壓縮指的是即便丟失個別的數(shù)據(jù),對文件也不會造成太大的影響。有損壓縮廣泛應(yīng)用于動畫、聲音和圖像文件中,典型代表就是影碟文件格式 mpeg、音樂文件格式 mp3 以及圖像文件格式 jpg。
采用壓縮工具對文件進行壓縮,生成的文件稱為壓縮包,該文件的體積通常只有原文件的一半甚至更小。需要注意的是,壓縮包中的數(shù)據(jù)無法直接使用,使用前需要利用壓縮工具將文件數(shù)據(jù)還原,此過程又稱解壓縮。
linux壓縮命令
常用的壓縮命令有很多,比如?gzip、?zip、?bzip2 。
tar壓縮命令
tar 命令不是專門的壓縮命令。它通常用于將多個文件拉入一個單個的文件中,以便容易地傳輸?shù)搅硪粋€系統(tǒng),或者將文件作為一個相關(guān)的組進行備份。它也提供壓縮的功能,這就很有意義了,附加一個 z 壓縮選項能夠?qū)崿F(xiàn)壓縮文件。
當(dāng)使用 z 選項為 tar 命令附加壓縮過程時,tar 使用 gzip 來進行壓縮。
就像壓縮一組文件一樣,你可以使用 tar 來壓縮單個文件,盡管這種操作與直接使用 gzip 相比沒有特別的優(yōu)勢。要使用 tar 這樣做,只需要使用 tar cfz newtarfile filename 命令來標識要壓縮的文件,就像標識一組文件一樣,像這樣:
$?tar?cfz?bigfile.tgz?bigfile ????????????^????????????^ ????????????|????????????| ????????????+-?新的文件??+-?將被壓縮的文件 $?ls?-l?bigfile* -rw-rw-r--?1?shs?shs?103270400?Apr?16?16:09?bigfile -rw-rw-r--?1?shs?shs?21608325?Apr?16?16:08?bigfile.tgz
注意,文件的大小顯著減少了。
如果你愿意,你可以使用 tar.gz 擴展名,這可能會使文件的特征更加明顯,但是大多數(shù)的 Linux 用戶將很可能會意識到與 tgz 的意思是一樣的 – tar 和 gz 的組合來顯示文件是一個壓縮的 tar 文件。在壓縮完成后,你將同時得到原始文件和壓縮文件。
要將很多文件收集在一起并在一個命令中壓縮出 “tar ball”,使用相同的語法,但要指定要包含的文件為一組,而不是單個文件。這里有一個示例:
$?tar?cfz?bin.tgz?bin/* ??????????^?????????^ ??????????|?????????+--?將被包含的文件 ??????????+?新的文件
zip壓縮命令
zip 命令創(chuàng)建一個壓縮文件,與此同時保留原始文件的完整性。語法像使用 tar 一樣簡單,只是你必需記住,你的原始文件名稱應(yīng)該是命令行上的最后一個參數(shù)。
$?zip?./bigfile.zip?bigfile updating:?bigfile?(deflated?79%) $?ls?-l?bigfile?bigfile.zip -rw-rw-r--?1?shs?shs?103270400?Apr?16?11:18?bigfile -rw-rw-r--?1?shs?shs??21606889?Apr?16?11:19?bigfile.zip
gzip壓縮命令
gzip 命令非常容易使用。你只需要鍵入 gzip,緊隨其后的是你想要壓縮的文件名稱。不像上述描述的命令,gzip 將“就地”“加密”文件。換句話說,原始文件將被“加密”文件替換。
$?gzip?bigfile $?ls?-l?bigfile* -rw-rw-r--?1?shs?shs??21606751?Apr?15?17:57?bigfile.gz
bzip2壓縮命令
像使用 gzip 命令一樣,bzip2 將在你選擇的文件“就地”壓縮,不留下原始文件。
$?bzip?bigfile $?ls?-l?bigfile* -rw-rw-r--?1?shs?shs??18115234?Apr?15?17:57?bigfile.bz2
xz壓縮命令
xz 是壓縮命令團隊中的一個相對較新的成員,在壓縮文件的能力方面,它是一個領(lǐng)跑者。像先前的兩個命令一樣,你只需要將文件名稱提供給命令。再強調(diào)一次,原始文件被就地壓縮。
$ xz bigfile $ ls -l bigfile* -rw-rw-r-- 1 shs shs 13427236 Apr 15 17:30 bigfile.xz
對于大文件來說,你可能會注意到 xz 將比其它的壓縮命令花費更多的運行時間,但是壓縮的結(jié)果卻是非常令人贊嘆的。
壓縮命令對比
大多數(shù)人都聽說過“大小不是一切”。所以,讓我們比較一下文件大小以及一些當(dāng)你計劃如何壓縮文件時的問題。
下面顯示的統(tǒng)計數(shù)據(jù)都與壓縮單個文件相關(guān),在上面顯示的示例中使用 bigfile。這個文件是一個大的且相當(dāng)隨機的文本文件。壓縮率在一定程度上取決于文件的內(nèi)容。
-
大小減縮率
當(dāng)比較時,上面顯示的各種壓縮命產(chǎn)生下面的結(jié)果。百分比表示壓縮文件與原始文件的比較效果。
-rw-rw-r--?1?shs?shs?103270400?Apr?16?14:01?bigfile ------------------------------------------------------ -rw-rw-r--?1?shs?shs?18115234?Apr?16?13:59?bigfile.bz2????~17% -rw-rw-r--?1?shs?shs?21606751?Apr?16?14:00?bigfile.gz?????~21% -rw-rw-r--?1?shs?shs?21608322?Apr?16?13:59?bigfile.tgz????~21% -rw-rw-r--?1?shs?shs?13427236?Apr?16?14:00?bigfile.xz?????~13% -rw-rw-r--?1?shs?shs?21606889?Apr?16?13:59?bigfile.zip????~21%
xz 命令獲勝,最終只有壓縮文件 13% 的大小,但是所有這些壓縮命令都相當(dāng)顯著地減少原始文件的大小。
-
是否替換原始文件
bzip2、gzip 和 xz 命令都用壓縮文件替換原始文件。tar 和 zip 命令不替換。
-
運行時間
xz 命令似乎比其它命令需要花費更多的時間來“加密”文件。對于 bigfile 來說,大概的時間是:
命令??????運行時間 tar???????4.9?秒 zip???????5.2?秒 bzip2????22.8?秒 gzip??????4.8?秒 xz???????50.4?秒
解壓縮文件很可能比壓縮時間要短得多。
-
文件權(quán)限
不管你對壓縮文件設(shè)置什么權(quán)限,壓縮文件的權(quán)限將基于你的 umask 設(shè)置,但 bzip2 除外,它保留了原始文件的權(quán)限。
-
與 Windows 的兼容性
zip 命令創(chuàng)建的文件可以在 Windows 系統(tǒng)以及 Linux 和其他 Unix 系統(tǒng)上使用(即解壓),而無需安裝其他工具,無論這些工具可能是可用還是不可用的。
相關(guān)推薦:《Linux視頻教程》