Linux 支持的壓縮算法非常多,且不同的算法都有對應的命令。 所以在解壓縮文件時,就需要知道該文件是由哪種壓縮算法生成的,在這個時候,就要根據壓縮文件擴展名來選擇了,下表列出了幾種常見的壓縮文件擴展名及對應的算法。
擴展名 | 算法 | 備註 |
---|---|---|
*.Z | compress,比較早的壓縮算法,現在已經很少使用了 | - |
*.gz | gzip,比較常用的壓縮方法,由GNU 開發,取代了 compress |
1. 只能壓縮文件 2. 壓縮後,源文件會被刪除 3. 解壓縮後,壓縮文件會被刪除 |
*.bz2 | bzip2,比較常用的壓縮方法,壓縮率比gzip 高,由GNU 開發,準備用來取代gzip ,目前兩者都很流行 |
1. 只能壓縮文件 2. 壓縮後,源文件會被刪除 3. 解壓縮後,壓縮文件會被刪除 |
*.xz | xz ,比gzip 和bzip2 壓縮比都要搞的壓縮算法 |
1. 只能壓縮文件 2. 壓縮後,源文件會被刪除 3. 解壓縮後,壓縮文件會被刪除 |
*.tar | - | 可以對目錄和文件進行歸檔,沒有進行壓縮 |
.tar.gz | 對tar 歸檔文件使用gzip 算法壓縮 |
- |
.tar.bz2 | 對tar 歸檔文件使用bzip2 算法壓縮 |
- |
.tar.xz | 對tar 歸檔文件使用xz 算法壓縮 |
- |
*.zip | zip , 既可以做歸檔又可以做壓縮,centos 中需要單獨安裝,使用場景比較少 | 可以對目錄和文件進行歸檔和壓縮 |
gzip
gunzip
命令用於解壓縮。
zcat
命令用於查看gzip
壓縮後的文件,若壓縮文件特別大,zcat
會特別慢。
gzip
命令用於壓縮文件,命令格式爲gzip [OPTION] file...
選項 | 作用 |
---|---|
-d | 解壓縮gzip 壓縮後的文檔,相當於gunzip 命令 |
-c, --stdout | 1. 當壓縮的時候,用於保留源文件,使用該選項可以將壓縮結果輸出,默認是輸出到標準輸出,可以使用io 重定向到一個目標文件2. 當和 -d 一起用於解壓縮的時候,用於保留壓縮文件,該選項可以將解壓縮結果輸出,,默認是輸出到標準輸出,可以使用io 重定向到一個目標文件 |
-# | 指定壓縮比,默認是6,可以選範圍1-9 ,數字越大,資源小號越多,壓縮後的文件越小 |
-k | 可以用於檢驗壓縮文件的一致性 |
-v | 可以顯示出源文件和壓縮文件的壓縮比 |
-f,–force | 強制覆蓋同名目標文件 |
[vagrant@nexus3 gzipdemo]$ ls
yumdb
[vagrant@nexus3 gzipdemo]$ gzip yumdb
[vagrant@nexus3 gzipdemo]$ ls
yumdb.gz
[vagrant@nexus3 gzipdemo]$ gzip -d yumdb.gz
[vagrant@nexus3 gzipdemo]$ ls
yumdb
[vagrant@nexus3 gzipdemo]$ gzip -c yumdb > yumdbc.gz
[vagrant@nexus3 gzipdemo]$ ls
yumdb yumdbc.gz
[vagrant@nexus3 gzipdemo]$ gzip -v yumdb
yumdb: 78.2% -- replaced with yumdb.gz
[vagrant@nexus3 gzipdemo]$ ls
yumdbc.gz yumdb.gz
[vagrant@nexus3 gzipdemo]$ gzip -dc yumdb.gz > ./yumdb_optionc
[vagrant@nexus3 gzipdemo]$ ls
yumdbc.gz yumdb.gz yumdb_optionc
bzip2
bunzip2
命令用於解壓縮。
bzcat
命令用於查看bzip2
壓縮後的文件,若壓縮文件特別大,bzcat
會特別慢。
bzip2
命令用於壓縮文件,命令格式爲bzip2 [OPTION] file...
選項 | 作用 |
---|---|
-d | 解壓縮bzip2 壓縮後的文檔,相當於bunzip2 命令 |
-c, --stdout | 1. 當壓縮的時候,用於保留源文件,使用該選項可以將壓縮結果輸出,默認是輸出到標準輸出,可以使用io 重定向到一個目標文件2. 當和 -d 一起用於解壓縮的時候,用於保留壓縮文件,該選項可以將解壓縮結果輸出,,默認是輸出到標準輸出,可以使用io 重定向到一個目標文件 |
-# | 指定壓縮比,默認是6,可以選範圍1-9 ,數字越大,資源小號越多,壓縮後的文件越小 |
-t | 可以用於檢驗壓縮文件的一致性 |
-v | 可以顯示出源文件和壓縮文件的壓縮比 |
-k, --keep | 1. 當壓縮的時候,用於保留源文件,與-c 不同的在於不會將結果輸出到標準輸出2. 當和 -d 一起用於解壓縮的時候,用於保留壓縮文件,與-c 不同的在於不會將結果輸出到標準輸出 |
-f,–force | 強制覆蓋同名目標文件 |
xz
xz
命令用於解壓縮。
xzcat
命令用於查看xz
壓縮後的文件,若壓縮文件特別大,bzcat
會特別慢。
xz
命令用於壓縮文件,命令格式爲xz [OPTION] file...
,xz
命令的選擇同bzip2
。
tar
歸檔用於將衆多的文件/目錄歸檔爲一個文件。命令格式:tar [OPTION...] [FILE]...
歸檔文件:tar [-j|-J|-z] [cv] [-f 歸檔文件名] file...
查看歸檔文件: tar [-j|-J|-z] [tv] [-f 歸檔文件名]
釋放歸檔文件:tar [-j|-J|-z] [xv] [-f 歸檔文件名] [-C 釋放的目標路徑]
選項 | 作用 |
---|---|
[-j|-J|-z] |
指定使用那種壓縮算法:-j 使用bzip2 進行壓縮/解壓縮,文件名稱*.tar.bz2 -J 使用xz 進行壓縮/解壓縮,文件名稱*.tar.xz -z 使用gzip 進行壓縮/解壓縮,文件名稱*.tar.gz |
[cv|tv|xv] |
v 表示查看歸檔/釋放歸檔的過程cv 表示進行歸檔tv 表示查看歸檔文件xv 表示釋放歸檔文件 |
-f | 後面要接歸檔文件名 |
-C, --directory=DIR | 指定歸檔文件釋放的目標路徑 |
-r, --append | append files to the end of an archive |
-d, --diff, --compare | find differences between archive and file system |
-u, --update | only append files newer than copy in archive |
–exclude | 打包目錄的時候,略過指定的部分tar -cvzf /tmp/system.tar.gz --exculde=/etc/root/yum.d --exclude=/etc/root/xxx.rc /etc/root |
–newer-mtime | --newer-mtime=2008/09/29 |
–newer-ctime | --newer-ctime=2008/06/03 |
–overwrite | overwrite existing files when extracting |