在講 linux 上的壓縮工具之前,有必要先了解一下常見常用的壓縮包檔案格式。在 windows 上最常見的不外乎這兩種*.zip
,*.7z
字尾的壓縮檔案。而在 linux 上面常見的格式除了以上兩種外,還有.rar,
*.gz
,*.xz
,*.bz2
,*.tar
,*.tar.gz
,*.tar.xz
,*.tar.bz2
,簡單介紹如下:
檔案字尾名
說明*.zip
zip 程式打包壓縮的檔案
*.rar
rar 程式壓縮的檔案
*.7z
7zip 程式壓縮的檔案
*.tar
tar 程式打包,未壓縮的檔案
*.gz
gzip 程式(gnu zip)壓縮的檔案
*.xz
xz 程式壓縮的檔案
*.bz2
bzip2 程式壓縮的檔案
*.tar.gz
tar 打包,gzip 程式壓縮的檔案
*.tar.xz
tar 打包,xz 程式壓縮的檔案
*tar.bz2
tar 打包,bzip2 程式壓縮的檔案
*.tar.7z
tar 打包,7z 程式壓縮的檔案
zip 命令用來壓縮打包成乙個檔案,並可以檢視打包後檔案的大小和型別。
注意:這裡打包時只能使用絕對路徑,否則不起作用。
我們再用du
命令分別檢視預設壓縮級別、最低、最高壓縮級別及未壓縮的檔案的大小:
$ du -h -d 0 *.zip ~ | sort
通過 man 手冊可知:
使用-e
引數可以建立加密壓縮包:
注意:關於zip
命令,如果在不加處理的情況下,在 linux 上編輯的文字,在 windows 系統上開啟可能看起來是沒有換行的。如果你想讓你在 linux 建立的 zip 壓縮檔案在 windows 上解壓後沒有任何問題,那麼你需要加上-l
引數將linux上的換行lf
轉換為 windows上的換行cr+lf
來達到以上目的。
unzip 命令預設解壓到當前目錄,-d 引數解壓到指定目錄,如果指定目錄不存在,將會自動建立。
注意:使用 unzip 解壓檔案時我們同樣應該注意相容問題,不過這裡我們關心的不再是上面的問題,而是中文編碼的問題,通常 windows 系統上面建立的壓縮檔案,如果有有包含中文的文件或以中文作為檔名的檔案時缺省會採用 gbk 或其它編碼,而 linux 上面預設使用的是 utf-8 編碼,如果不加任何處理,直接解壓的話可能會出現中文亂碼的問題(有時候它會自動幫你處理),為了解決這個問題,我們可以在解壓時指定編碼型別。
使用-o
(英文本母,大寫 o)引數指定編碼類
unzip -o gbk 中文壓縮檔案.zip
格式為 tar [選項] [檔名]tar 的解壓和壓縮都是同乙個命令,只需引數不同,使用比較方便。
下面先掌握tar
命令一些基本的使用方式,即不進行壓縮只是進行打包(建立歸檔檔案)和解包的操作。
$ tar -cf 檔名
上面命令中,-c
表示建立乙個 tar 包檔案,-f
用於指定建立的檔名,注意檔名必須緊跟在-f
引數之後,你還可以加上-v
引數以可視的的方式輸出打包的檔案。上面會自動去掉表示絕對路徑的/
,你也可以使用-p
保留絕對路徑符。
$ mkdir tardir
$ tar -xf 檔名 -c 目錄
$ tar -tf 檔名
$ tar -cphf etc.tar /etc
對於建立不同的壓縮格式的檔案,對於 tar 來說是相當簡單的,需要的只是換乙個引數,這裡我們就以使用gzip
工具建立*.tar.gz
檔案為例來說明。
$ tar -czf 檔名.gz /home/shiyanlou/desktop
$ tar -xzf 檔名.gz
現在我們要使用其它的壓縮工具建立或解壓相應檔案只需要更改乙個引數即可:
壓縮檔案格式
引數*.tar.gz
-z
Linux學習之檔案壓縮與打包
1.gzip 檔案壓縮與解壓縮 gzip filename 壓縮後不儲存原始檔 gzip c filename filename 壓縮後儲存原始檔 gunzip 檔案解壓縮 gunzip filename 解壓縮後不儲存原始檔 gunzip c filename filename 解壓縮後儲存原始檔...
Linux之檔案壓縮與打包詳解
在講解壓縮與打包之前說一下什麼是壓縮,簡單的說,就是經過壓縮軟體壓縮的檔案叫壓縮檔案,壓縮的原理是把檔案的二進位制 壓縮,把相鄰的0,1 減少,比如有000000,可以把它變成6個0 的寫法60,來減少該檔案的空間,計算機中都是以byte為單位的,其實bit才是計算的最小單位,比如對於乙個8位的 0...
Linux學習 之 檔案壓縮和打包
gzip gunzip 是用來壓縮和解壓縮單個檔案的工具。壓縮 檔案 gzip 解壓縮 檔案 tar 可以打包單個檔案,還可以將整個目錄中的全部檔案整合成乙個包,整合包還能使用gzip的功能進行壓縮。字尾名 tar 或者 tar.gz 或者 tgz z 表示gzip壓縮 c 表示建立壓縮檔案 cre...