部分資料來源:
gzip、bzip2
zip可以壓縮產生后綴為 .gz 的壓縮文件,也可以用於解壓gzip、compress等程序壓縮產生的文件。
基礎格式: gzip [Options] file1 file2 file3
指令選項:(默認功能為壓縮)
-c //將輸出寫至標准輸出,並保持原文件不變
-d //進行解壓操作
-v //輸出壓縮/解壓的文件名和壓縮比等信息
-digit //digit部分為數字(1-9),代表壓縮速度,digit越小,則壓縮速度越快,但壓縮效果越差,digit越大,則壓縮速度越慢,壓縮效果越好。默認為6.
注意,使用 gzip 指令壓縮/解壓文件均會使得源文件消失,即源文件會被直接解壓/壓縮而不保留備份。若想要保留原文件可以使用 -c 參數結合數據流重定向操作(見下例)。
gzip exp1.txt exp2.txt //分別將exp1.txt和exp2.txt壓縮,且不保留原文件。注意對於多個文件參數是將多個文件分別進行壓縮,而不是壓縮在一起。參考下文 tar 指令。
gzip -dv exp1.gz //將exp1.gz解壓,並顯示壓縮比等信息。
gzip -cd exp1.gz > exp.1 //將exp1.gz解壓的結果放置在文件exp.1中,並且原壓縮文件exp1.gz不會消失
特別注意第三條實例, -d 指示解壓縮,-c 參數是將結果輸出至標准輸出,通過 > 符號,將原本輸出至標准輸出的解壓結果重定向至exp.1中,既解壓了文件,原壓縮文件也沒有消失。
注:
1. 對應於 gzip,可以使用 gunzip 進行解壓操作,效果類似gzip -d xx
2. gzip -c 需要指定輸出到的文件,不然解壓不會執行成功。(參考第三條實例)
bzip2是采用更好壓縮算法的壓縮程序,一般可以提供較之gzip更好的壓縮效果。其具有與gzip相似的指令選項,壓縮產生 .bz2 后綴的壓縮文件。
基礎格式: bzip2 [Options] file1 file2 file3
指令選項:(默認功能為壓縮)
-c //將輸出寫至標准輸出
-d //進行解壓操作
-v //輸出壓縮/解壓的文件名和壓縮比等信息
-k //在壓縮/解壓過程中保留原文件
-digit //digit部分為數字(1-9),代表壓縮速度,digit越小,則壓縮速度越快,但壓縮效果越差,digit越大,則壓縮速度越慢,壓縮效果越好。默認為6.
bzip2 exp1.txt exp2.txt //分別將exp1.txt和exp2.txt壓縮,且不保留原文件。
bzip2 -dv exp1.bz2 //將exp1.bz2解壓,並顯示壓縮比等信息。
bzip2 -kd exp1.bz2 //將exp1.bz2解壓,並且原壓縮文件exp1.bz2不會消失
注:
對應於 bzip2,可以使用 bunzip2 進行解壓操作,效果類似bunzip2 -d xx
gzip 或 bzip2 帶有多個文件作為參數時,執行的操作是將各個文件獨立壓縮,而不是將其放在一起進行壓縮。這樣就無法產生類似於Windows環境下的文件夾打包壓縮的效果。(gzip與bzip2也可以使用文件夾作為參數,使用 -f 選項,但也是將其中的每個文件獨立壓縮)。為了實現打包壓縮的效果,可以使用命令 tar 進行文件的打包操作(archive),再進行壓縮。####
tar 指令可以將文件打包成文件檔案(archive)存儲在磁盤/磁帶中,打包操作一般伴隨壓縮操作,也可以使用 tar 指令對打包壓縮后的文件解壓。
基本格式:tar [Options] file_archive //注意tar的第一參數必須為命令選項,即不能直接接待處理文件
常用命令參數:
//指定tar進行的操作,以下三個選項不能出現在同一條命令中
-c //創建一個新的打包文件(archive)
-x //對打包文件(archive)進行解壓操作
-t //查看打包文件(archive)的內容,主要是構成打包文件(archive)的文件名
//指定支持的壓縮/解壓方式,操作取決於前面的參數,若為創建(-c),則進行壓縮,若為解壓(-x),則進行解壓,不加下列參數時,則為單純的打包操作
-z //使用gzip進行壓縮/解壓,一般使用.tar.gz后綴
-j //使用bzip2進行壓縮/解壓,一般使用.tar.bz2后綴
//指定tar指令使用的文件,若沒有壓縮操作,則以.tar作為后綴
-f filename //-f后面接操作使用的文件,用空格隔開,且中間不能有其他參數,推薦放在參數集最后或單獨作為參數
//文件作用取決於前面的參數,若為創建(-c),則-f后為創建的文件的名字(路徑),若為(-x/t),則-f后為待解壓/查看的打包壓縮文件名
//其他輔助選項
-v //詳細顯示正在處理的文件名
-C Dir //將解壓文件放置在 -C 指定的目錄下
-p(小寫) //保留文件的權限和屬性,在備份文件時較有用
-P(大寫) //保留原文件的絕對路徑,即不會拿掉文件路徑開始的根目錄,則在還原時會覆蓋對應路徑上的內容
--exclude=file //排除不進行打包的文件
壓縮:
tar -cvjpf etc.tar.bz2 /etc //-c為創建一個打包文件,相應的-f后面接創建的文件的名稱,使用了.tar.bz2后綴,-j標志使用bzip2壓縮,最后面為具體的操作對象/etc目錄
查看:
j選項,-v會顯示詳細的權限信息
解壓
tar -xvjf etc.tar.bz2 //-x為解壓操作,則-f指定的是解壓使用的文件,文件后綴顯示使用bzip2進行壓縮,所以加入-j選項,即使用bzip2解壓
//若只解壓指定打包文件中的一個文件,在上述指令的最后加上待解壓文件名作為參數即可
注:
tar -cvf xx.tar.gz xxx 常用壓縮指令
tar -xvf xx.tar.gz 常用解壓指令