日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux bzip2/gzip/zip/tar 命令详解

發(fā)布時間:2025/3/15 linux 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux bzip2/gzip/zip/tar 命令详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Changelog

版本時間修訂章節(jié)
1.02018-3-24添加了關于xz的內(nèi)容

Linux文件壓縮工具

工具文件擴展名描述
bzip2.bz2采用 Burrows-Wheeler 塊排序文本壓縮算法和霍夫曼編碼
gzip.gzGNU壓縮工具,用 Lempel-Ziv-Welch 編碼
zip.zipWindows上 PKZIP 工具的 Unix 實現(xiàn)
xz.xz使用 LZMA/LZMA2 壓縮算法

bzip2工具

壓縮文件

格式:

bzip2 文件名(不能是目錄)

舉例:

bzip2 pic.tar

這時候,你會發(fā)現(xiàn)原始文件pic.tar不見了,被替換成了pic.tar.bz2;
如果bzip2后面跟多個文件(比如 命令bzip2 1.txt 2.txt 3.txt),那么不會打包壓縮,而是把每個文件分別壓縮,*.txt會變成*.txt.bz2,不建議這樣使用。

如果要保留原始文件,可以加-k選項。

解壓縮

格式:

bunzip2 xxx.bz2

或者

bzip2 -d xxx.bz2

舉例:

bunzip2 pic.tar.bz2

這時候,你會發(fā)現(xiàn)原始文件pic.tar.bz2不見了,被替換成了pic.tar

如果要保留原始文件,可以加-k選項。

gzip工具

和bzip2用法基本相同。

壓縮文件

gzip 文件名(不能是目錄)

這時候,你會發(fā)現(xiàn)原始文件xxx不見了,被替換成了xxx.gz;
如果gzip后面跟多個文件,那么會把每個文件分別壓縮,不建議這樣使用。

如果要保留原始文件,可以加-k選項。

解壓縮

gunzip xxx.gz

或者

gzip -d xxx.gz

如果要保留原始文件,可以加-k選項。

zip工具

與上面兩個工具不同的是,zip工具可以處理目錄。

壓縮

zip命令常用選項如下:

選項說明
-r遞歸處理,將指定目錄下的所有文件和子目錄一并處理。
-m將文件壓縮后刪除原始文件,即把文件移到壓縮文件中。
-u更換較新的文件到壓縮文件內(nèi)。
-v顯示指令的執(zhí)行過程或版本信息。

解壓縮

unzip命令常用選項如下:

選項說明
-l顯示壓縮文件內(nèi)所包含的文件(僅顯示,并不解壓)。
-v顯示指令的執(zhí)行過程或版本信息。
-t檢查壓縮文件是否正確。
-j不處理壓縮文件中原有的目錄路徑。
-d <目錄>解壓文件到指定目錄。

舉例

  • 我想把一個文件abc.txt和一個目錄dir壓縮成為aaa.zip:
zip -r aaa.zip abc.txt dir
  • 我下載了一個aaa.zip文件,想解壓:
unzip aaa.zip
  • 我有一個很大的壓縮文件large.zip,我不想解壓縮,只想看看它里面有什么:
unzip -l large.zip

unzip -v large.zip
  • 我下載了一個壓縮文件large.zip,想驗證一下這個壓縮文件是否完整:
unzip -t large.zip
  • 我用-l選項發(fā)現(xiàn)music.zip文件里面有很多目錄和子目錄,并且子目錄中全是.mp3文件。我想把這些文件都解壓到當前目錄下,而不創(chuàng)建原有目錄結(jié)構(gòu)。
unzip -j music.zip
  • 我想把aaa.zip解壓到指定目錄/a/b/c/下面(目錄c可以有也可以沒有,如果沒有會自動創(chuàng)建,但是/a/b/必須要有)
unzip -d /a/b/c/ aaa.zip

xz工具

根據(jù)維基百科的解釋, xz 是一個使用 LZMA 壓縮算法的無損數(shù)據(jù)壓縮文件格式。和gzip與bzip2一樣,同樣支持多文件壓縮,但是約定不能將多于一個的目標文件壓縮進同一個檔案文件。

壓縮

xz 文件名(不能是目錄)

這時候,你會發(fā)現(xiàn)原始文件xxx不見了,被替換成了xxx.xz;
如果xz后面跟多個文件,那么會把每個文件分別壓縮,不建議這樣使用。

如果要保留原始文件,可以加-k選項。

解壓縮

xz -d xxx.xz

如果要保留原始文件,可以加-k選項。

tar命令

tar命令是用來歸檔(把多個文件歸檔成一個文件)與提取的,本質(zhì)上沒有壓縮與解壓縮的功能。

命令格式

tar function [options] obj1 obj2 ...

function 參數(shù)定義了tar命令的功能,必須有一個。常用的參數(shù)如下表:

功能描述
-c創(chuàng)建一個新的歸檔文件
-x從已有歸檔文件中提取文件
-t列出已有歸檔文件的內(nèi)容
-r追加文件到已有歸檔文件末尾

除了指定一個功能外,還可以指定一個或多個選項。常用的選項如下表:

選項描述
-f file在f后要立即接歸檔文件名(必須要這個參數(shù))
-v在處理時顯示文件
-C dir切換到指定目錄
-j將輸出重定向給bzip2命令來壓縮或解壓,此時檔案名最好為*.tar.bz2
-z將輸出重定向給gzip命令來壓縮或解壓,此時檔案名最好為*.tar.gz

把目錄或文件歸檔

舉例:
用tree命令查看當前目錄結(jié)構(gòu)如下。

.
├── pic1
│ ├── Chrysanthemum.jpg
│ ├── Desert.jpg
│ ├── Hydrangeas.jpg
│ └── Jellyfish.jpg
└── pic2
├── Koala.jpg
├── Lighthouse.jpg
├── Penguins.jpg
└── Tulips.jpg

tar -cf pic.tar pic1/ pic2/

上面的命令把目錄pic1和目錄pic2的內(nèi)容歸檔到文件pic.tar中。
這時候在WIN7下查看如下圖:

注意,這里的pic.tar只是歸檔文件,并沒有壓縮,其大小約等于目錄pic1之大小加上目錄pic2之大小。

上述結(jié)果也可以用命令

tar -cf pic.tar *

把當前目錄下所有內(nèi)容歸檔到pic.tar

僅列出檔案內(nèi)容

如果只想列出歸檔文件pic.tar的內(nèi)容,并不提取文件,可以用命令

tar -tf pic.tar

返回結(jié)果是:

pic1/
pic1/Chrysanthemum.jpg
pic1/Desert.jpg
pic1/Hydrangeas.jpg
pic1/Jellyfish.jpg
pic2/
pic2/Koala.jpg
pic2/Lighthouse.jpg
pic2/Penguins.jpg
pic2/Tulips.jpg

提取檔案內(nèi)容

假設當前目錄下僅有pic.tar
提取文件可以用命令

tar -xf pic.tar

此時用tree命令查看

.
├── pic1
│ ├── Chrysanthemum.jpg
│ ├── Desert.jpg
│ ├── Hydrangeas.jpg
│ └── Jellyfish.jpg
├── pic2
│ ├── Koala.jpg
│ ├── Lighthouse.jpg
│ ├── Penguins.jpg
│ └── Tulips.jpg
└── pic.tar

注意:不管是歸檔還是提取,原始文件都會被保留。

tar命令與(解)壓縮

上文已經(jīng)說過,bzip2、gzip和xz工具都不能處理目錄,只能處理文件。如果想對整個目錄進行壓縮,可以先用tar歸檔,再用bzip2、gzip或者xz處理。為了方便,這兩個過程可以合二為一。

于是tar命令就有了如下的選項:

選項說明
-j將輸出重定向給bzip2命令來壓縮或解壓,此時檔案名最好為*.tar.bz2
-z將輸出重定向給gzip命令來壓縮或解壓,此時檔案名最好為*.tar.gz
-J將輸出重定向給xz命令來壓縮或解壓,此時檔案名最好為*.tar.xz

打包并壓縮

  • 把目錄dir1和dir2打包成all.tar后,并用bzip2壓縮,最后生成一個壓縮包,命名為all.tar.bz2
tar -cjf all.tar.bz2 dir1 dir2
  • 把當前目錄下的所有.jpg文件打包成jpg.tar后,并用gzip壓縮,最后生成一個壓縮包,命名為jpg.tar.gz
tar –czf jpg.tar.gz *.jpg

僅查看

在不解壓的情況下查看壓縮包的內(nèi)容

tar -tf aaa.tar.gz

解壓并提取

  • 把aaa.tar.gz解壓到當前目錄
tar -xzf aaa.tar.gz
  • 把aaa.tar.bz2解壓到目錄dir(dir必須存在)
tar -xjf aaa.tar.bz2 -C dir

簡單總結(jié)

文件類型歸檔或壓縮提取或解壓
*.bz2bzip2bzip2 -d
*.gzgzipgzip -d
*.xzxz -zxz -d
*.zipzip -runzip
*.tartar -cftar -xf
*.tar.bz2tar -cjftar -xjf
*.tar.gztar -czftar -xzf
*.tar.xztar -cJftar -xJf

【參考資料】
https://www.cnblogs.com/chinareny2k/archive/2010/01/05/1639468.html
http://www.cnblogs.com/jyaray/archive/2011/04/30/2033362.html
https://zh.wikipedia.org/wiki/Xz
https://teddysun.com/294.html

總結(jié)

以上是生活随笔為你收集整理的Linux bzip2/gzip/zip/tar 命令详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。