Linux之打包/解包、壓縮/解壓
壓縮/解壓:gzip命令
Linux中壓縮、解壓文件的工具有很多,比如:compress、gzip、bzip2、xz等。這里介紹高頻使用的gzip命令。gzip工具特征在于:只能壓縮文件,不能壓縮目錄。gzip壓縮后默認(rèn)在原文件名稱后追加 .gz 后綴
# 壓縮若干個(gè)指定的文件
gzip file1 file2 ...
# 壓縮當(dāng)前目錄下的所有文件,其中通配符 * 代表當(dāng)前目錄下所有文件
gzip *
# 壓縮當(dāng)前目錄下(含子目錄下)的所有文件,其中通配符 * 代表當(dāng)前目錄下所有文件
gzip -r *
解壓操作類似,既可以使用gunzi命令。也可以繼續(xù)使用gzip命令,只需添加 -d 選項(xiàng)即可
# 解壓當(dāng)前目錄下(含子目錄下)的所有文件,其中通配符 * 代表當(dāng)前目錄下所有文件
gzip -dr *
打包/解包:tar命令
通過對比Linux、Win下的壓縮操作表現(xiàn)來看,似乎發(fā)現(xiàn)一個(gè)問題了。Win下可以將多個(gè)文件壓縮成一個(gè)文件,而在Linux中g(shù)zip命令則是一個(gè)一個(gè)壓縮的。為此在Linux下需要先將多個(gè)文件歸檔到一個(gè)文件當(dāng)中,即所謂的打包(歸檔文件的后綴習(xí)慣上用 .tar )。通常使用tar命令即可。事實(shí)上該tar命令選項(xiàng)較為復(fù)雜,而且很多選項(xiàng)基本很少用到。故這里只介紹常見的選項(xiàng)
-
-c :創(chuàng)建tar歸檔文件,即所謂的打包 -
-v :命令執(zhí)行過程中顯示正在處理的文件名 -
-f :用以指定操作的tar歸檔文件 -
-x :從tar歸檔文件中提取文件,即所謂的解包 -
-t :列出以查看tar歸檔文件中的內(nèi)容,但不提取 -
-C :切換到指定目錄 -
-z :調(diào)用gzip命令壓縮/解壓文件 -
-Z :調(diào)用compress命令壓縮/解壓文件 -
-j :調(diào)用bzip2命令壓縮/解壓文件 -
-J :調(diào)用xz命令壓縮/解壓文件
1. 打包命令如下所示
# 將指定文件打包到歸檔文件 file1.tar 中
tar -cvf file1.tar file1 file2 dir1/ dir2/ ...
# 將當(dāng)前目錄下(含子目錄下)的所有文件打包到歸檔文件 file1.tar 中,其中通配符 * 代表當(dāng)前目錄下所有文件
tar -cvf file1.tar *
2. 查看歸檔文件中的內(nèi)容
# 查看歸檔文件 file1.tar 中的內(nèi)容
tar -tf file1.tar
3. 解包命令如下所示
# 對指定tar歸檔文件在當(dāng)前工作目錄下進(jìn)行解包
tar -xvf temp/file1.tar
# 對指定tar歸檔文件在指定目錄下進(jìn)行解包
tar -xvf temp/file1.tar -C ./temp2/
組合拳
故在Linux當(dāng)中對多文件進(jìn)行壓縮前,一般都需要先打包成tar歸檔文件;而在解壓后,通常得到也是一個(gè)tar歸檔文件,還需要再次解包。為此,tar命令中直接提供了 compress 、 -z 、 -j 、 -J 等選項(xiàng),以便直接調(diào)用compress、gzip、bzip2、xz等命令進(jìn)行壓縮/解壓。故如果期望對多文件進(jìn)行壓縮,直接利用tar命令即可一次性搞定。解壓文件同理。具體命令如下,這里以使用gzip壓縮為例,如果期望使用其他壓縮命令,只需將下述命令中的 -z 選項(xiàng) 替換為其它壓縮軟件對應(yīng)的選項(xiàng)即可
# 壓縮文件命令組合拳: 對指定文件打包并使用gzip壓縮
tar -zcvf foo.tar.gz file1 file2 dir1 dir2 ...
# 解壓文件命令組合拳:對壓縮文件,先使用gzip解壓,再解包
tar -zxvf foo.tar.gz
壓縮示例
解壓示例
這里強(qiáng)調(diào)下在解壓的時(shí)候,我們首先需要知道該壓縮文件是用什么工具壓縮的。一方面,我們可以通過文件后綴名來判定;另一方面,我們還可以使用file命令來判定
-
文件后綴名 .tar.gz 或 .tgz 習(xí)慣上代表該tar歸檔文件使用gzip命令進(jìn)行壓縮 -
文件后綴名 .tar.bz2 習(xí)慣上代表該tar歸檔文件使用bzip2命令進(jìn)行壓縮 -
文件后綴名 .tar.xz 習(xí)慣上代表該tar歸檔文件使用xz命令進(jìn)行壓縮
參考文獻(xiàn)
-
Linux命令行與shell腳本編程大全·第4版 Richard Blum、Christine Bresnahan著
