linux系統下tar/gz/7z/xz/bz2/zip等各種格式的打包壓縮解壓
阿新 • • 發佈:2019-02-06
linux系統下總會遇到各種格式的壓縮包,什麼tar/gz/7z/xz/bz2/zip等等,每種格式檔案的解壓和壓縮方法都不完全一致,所攜帶的引數也都各有千秋,初學者往往會一臉茫然,不知如何是好。於是,本文就對上述各種常見的檔案和命令進行一番總結和對比,以便查閱和參考。
一、tar/tgz/tar.gz/tar.bz2/tar.xz
1、優勢特點
tar是在Linux中使用得非常廣泛的文件打包格式。它的好處就是它只消耗非常少的CPU以及時間去打包檔案,但它僅僅只是一個打包工具,並不負責壓縮。
而實際使用中,除了要打包之外,往往還需要進行一下壓縮,提高空間利用率。因此,很多時候,tar命令並不是單獨出現的,而是伴隨著其他的壓縮命令一起出現。比如:tar.gz格式,tar.bz2格式,tar.xz格式
2、壓縮命令
tar -cvf target_name.tar dir_or_file # 將目標打包成一個*.tar格式的檔案
tar -czvf target_name.tgz dir_or_file # 將目標打包成一個*.tgz格式的檔案
tar -czvf target_name.tar.gz dir_or_file # 將目標打包並壓縮成一個*.tar.gz格式的檔案
tar -cjvf target_name.tar.bz2 dir_or_file # 將目標打包並壓縮成一個*.tar.bz2格式的檔案
相對上述幾類檔案,*.tar.xz檔案則比較特殊,需要兩條命令來進行打包和壓縮:
tar -cvf target_name.tar dir_or_file # 1.將目標打包成一個*.tar格式的檔案
xz -z target_name.tar.xz # 2.將打包好的檔案壓縮成一個*.tar.xz格式的檔案
3、解壓命令
tar -xvf pakage_name.tar # 解開一個*.tar的檔案包內容到當前目錄下
tar -xzvf pakage_name.tgz # 解開一個*.tgz的檔案包內容到當前目錄下
tar -xzvf pakage_name.tar.gz # 解開一個*.tar.gz的壓縮包內容到當前目錄下
tar -xjvf pakage_name.tar.bz2 # 解開一個*.tar.bz2的壓縮包內容到當前目錄下
上面這幾個解包命令將會將文件解開在當前目錄下面。當然,你也可以用引數”-C”來更改解包的路徑:
tar -xvf pakage_name.tar -C /opt/target_dir/ # 解開一個*.tar的檔案包內容到指定目錄下
tar -xzvf pakage_name.tgz -C /opt/target_dir/ # 解開一個*.tgz的檔案包內容到指定目錄下
tar -xzvf pakage_name.tar.gz -C /opt/target_dir/ # 解開一個*.tar.gz的壓縮包內容到指定目錄下
tar -xjvf pakage_name.tar.bz2 -C /opt/target_dir/ # 解開一個*.tar.bz2的壓縮包內容到指定目錄下
同上,*.tar.xz檔案同樣比較特殊,需要兩條命令來解開:
xz -d pakage_name.tar.xz # 1.解開tar.xz壓縮包為tar格式包
tar -xvf pakage_name.tar # 2.解開tar格式包到當前目錄下
4、引數說明
- 命令型別引數:
- -c或–create:建立新的備份檔案。
- -x或–extract或–get:從備份檔案中還原檔案。
- 壓縮方式引數:
- -j或–bzip2:以bz2的演算法來壓縮或者解壓檔案。
- -z或–gzip或–ungzip:通過 gzip 指令處理備份檔案。
- 其他常用引數:
- -v或–verbose:顯示指令執行過程。
- -C<目的目錄>或–directory=<目的目錄>:切換到指定的目錄。
二、7z
1、優勢特點
這是一個非通用的命令格式。在一般的linux發行系統上都沒有原配,需要自己下載安裝,以Ubuntu為例,直接使用下述命令即可。
sudo apt-get install p7zip
2、壓縮命令
7za a -t7z -r -mx=9 Mytest.7z /opt/temp/*
- a 代表新增檔案/資料夾到壓縮包。
- t 是指定壓縮型別,這裡定為7z,可不指定,因為7za預設壓縮型別就是7z。
- r 表示遞迴所有的子資料夾。
- Mytest.7z 是壓縮好後的壓縮包名。
- /opt/temp/*:是壓縮目標。
- -mx=9 表明我們需要極限的壓縮比。預設為5。
3、解壓命令
7za x test.7z -r -o./
- x 代表解壓縮檔案,並且是按原始目錄樹解壓(還有個引數 e 也是解壓縮檔案,但其會將所有檔案都解壓到根下,而不是自己原有的資料夾下)。
- test.7z 是壓縮檔案。
- r 表示遞迴解壓縮所有的子資料夾。
- o 是指定解壓到的目錄,-o後是沒有空格的,直接接目錄。這一點需要注意。
三、zip/unzip
1、優勢特點
linux下提供了zip和unzip程式,zip是壓縮程式,unzip是解壓程式。
2、壓縮命令
zip target.zip dir_or_file
3、解壓命令
unzip pakage_name.zip
4、引數說明
zip命令的引數:
- A 調整可執行的自動解壓縮檔案。
- d 從壓縮檔案內刪除指定的檔案。
- D 壓縮檔案內不建立目錄名稱。
- F 嘗試修復已損壞的壓縮檔案。
- g 將檔案壓縮後附加在既有的壓縮檔案之後,而非另行建立新的壓縮檔案。
- j 只儲存檔名稱及其內容,而不存放任何目錄名稱。
- m 將檔案壓縮並加入壓縮檔案後,刪除原始檔案,即把檔案移到壓縮檔案中。
- o 以壓縮檔案內擁有最新更改時間的檔案為準,將壓縮檔案的更改時間設成和該檔案相同。
- q 不顯示指令執行過程。
- r 遞迴處理,將指定目錄下的所有檔案和子目錄一併處理。
- S 包含系統和隱藏檔案。
- v 顯示指令執行過程或顯示版本資訊。
- <壓縮效率> 壓縮效率是一個介於 1-9 的數值。
unzip命令的引數:
- f 更新現有的檔案。
- l 顯示壓縮檔案內所包含的檔案。
- v 執行是時顯示詳細的資訊。
- C 壓縮檔案中的檔名稱區分大小寫。
- j 不處理壓縮檔案中原有的目錄路徑。
- L 將壓縮檔案中的全部檔名改為小寫。
- n 解壓縮時不要覆蓋原有的檔案。
- o 不必先詢問使用者,unzip 執行後覆蓋原有檔案。
- P<密碼> 使用 zip 的密碼選項。
- q 執行時不顯示任何資訊。
- [.zip 檔案] 指定.zip 壓縮檔案。
- [檔案] 指定要處理.zip 壓縮檔案中的哪些檔案。
- d<目錄> 指定檔案解壓縮後所要儲存的目錄。
- x<檔案> 指定不要處理.zip 壓縮檔案中的哪些檔案。