Linux中的 打包、解壓縮 命令 .tar.gz .tar.bz2 .tar.xz(無廢話)


.zip格式的文件在Windows和Linux下都能使用;

Linux中,打包解壓縮 的格式有:.tar、.gz、.bz2、xz、.zip等,常用的是 .zip、.tar.gz

  • .gz:解壓縮,由gzip壓縮工具壓縮的文件。
  • .bz2:解壓縮,由bzip2壓縮工具壓縮的文件。
  • .tar:打包,由tar打包程序打包的文件(tar並沒有壓縮功能,只是把一個目錄合並成一個文件)。

  • .tar.gz:先由tar打包,然后再由gzip壓縮。(最常用)
  • .tar.bz2:先由tar打包,然后再由bzip2壓縮。
  • .tar.xz:先由tar打包,然后再xz壓縮。

 

gzip (解壓縮) .tar.gz    -z

.gz
壓縮 gzip -k 1.txt 2.txt 得到 1.txt.gz 2.txt.gz ,-k 保留原來文件
解壓 gzip -d -k 1.txt.gz -d 表示解壓,-k 保留原來文件

注意:gzip 不能直接壓縮 目錄 或 多個文件,需先打包成一個文件,再壓縮成 .tar.gz 格式;

.tar.gz
先打包 合N為1:tar cvf archive.tar 1.txt 2.txt 得到 archive.tar ,在用壓縮命令 gzip -k archive.tar 即可得到 archive.tar.gz
壓縮 tar -czvf archive.tar.gz ./資料/ 得到 archive.tar.gz
解壓 tar -xzvf archive.tar.gz -C ~/ -C 解壓到 ~/ 中

 

bzip2 (解壓縮) .tar.bz2    -j

apt-get install bzip2 -y

.bz2
壓縮 bzip2 -k 1.txt 2.txt          -z 表示壓縮,默認可不寫,-k 保留原來文件, 結果:1.txt.bz2 和 2.txt.bz2
解壓 bzip2 -d -k 1.txt.bz2       -d 表示解壓,-k 保留原來文件

注意:bzip2 不能直接壓縮 目錄 多個文件,需先打包成一個文件,再壓縮成 .tar.bz2 格式;

.tar.bz2
先打包 合N為1:tar cvf archive.tar 1.txt 2.txt      得到 archive.tar ,在用壓縮命令 bzip2 -k archive.tar 即可得到 archive.tar.bz2

壓縮 tar -cjvf archive.tar.bz2 ./資料/      得到 archive.tar.bz2
解壓 tar -xjvf archive.tar.bz2 -C ~/       -C 解壓到 ~/ 中

 

xz (解壓縮) .tar.xz    -J

.xz
壓縮:xz -z -k 1.txt 2.txt -z 表示壓縮,默認可不寫,-k 保留原來文件, 結果:1.txt.bz2 和 2.txt.bz2 解壓:xz -d 1.txt.xz 解壓

.tar.xz
通過管道符命令打包並壓縮:tar cvf - 1.txt 2.txt | xz >  a.tar.xz 先打包成 -.tar 再通過管道符傳遞給下一個命令參數運行壓縮,得到 a.tar.xz
壓縮 tar -cJvf archive.tar.xz ./資料/ 得到 archive.tar.xz
解壓 tar -xJvf archive.tar.xz -C ~/ -C 解壓到 ~/ 中

注意:xz 不支持壓縮 目錄

 

tar 打包工具

把文件和目錄打包成一個文件,方便復制或者移動。

格式為 tar [-zjxcvfpP] filename tar

  • -z:表示同時用gzip壓縮      .tar.gz
  • -j:表示同時用bzip2壓縮    .tar.bz2
  • -J:表示同時用xz壓縮         .tar.xz
  • -x:表示解包或者解壓縮。
  • -c:表示建立一個tar包或者壓縮文件包。
  • -t:表示查看tar包里的文件。
  • -v:表示 可視化。
  • -f:后面跟文件名(即-f filename,表示壓縮后的文件名為filename,或者解壓文件filename。)需要注意的是,在多個參數組合的情況下,請把-f參數寫到最后面。
  • -C:后面跟解壓到哪個目錄中(目錄必須存在)
  • -p:表示使用原文件的屬性,即壓縮前文件是什么屬性壓縮后就還什么屬性。(不常用)
  • -P:表示可以使用絕對路徑。(不常用)
  • --exclude filename:表示在打包或壓縮時,不要將filename文件包括在內。(不常用)
cd ~
touch 1.txt 2.txt 3.txt 4.txt
yum install tree -y            // 安裝tree命令,用來查看目錄樹形結構  ubuntu/debian的命令: apt-get install -y tree
tree .
打包 tar -cvf test111.tar test111/ 解包 tar -xvf test111.tar

不管是打包還是解包,tar都不會刪除原來的文件的

查看壓縮包內的內容:

tar -tf test111.tar

 

打包的同時使用壓縮

同時操作支持:gzip壓縮、bzip2壓縮和xz壓縮

.tar.gz    -z

-z 可以壓縮成 gzip 格式的文件

tar -zcvf test111.tar.gz test111   打包壓縮 test111目錄
tar -zxvf test111.tar.gz      解包解壓縮 test111.tar.gz

tar -ztxv test111.tar.gz 查看

 

.tar.bz2    -j

-j 可以壓縮成 bzip2 格式的文件

tar -jcvf test111.tar.bz2 test111   打包壓縮 test111目錄
tar -jxvf test111.tar.bz2      解包解壓縮 test111.tar.bz2

tar -jtvf test111.tar.bz2 查看

 

.tar.xz    -J

同理,這里不多做介紹了...

 

Zip 壓縮

.zip 壓縮包在Windows和Linux中都比較常用。

安裝:

rehat/centos
yum install -y zip yum install -y unzip

debian/ubuntu
apt-get install -y zip
apt-get install -y unzip

壓縮 文件 和 目錄:

壓縮文件
zip a.zip 1.txt 將 1.txt 壓縮成 a.zip

解壓目錄
zip a.zip test111/ 只壓縮 test111 這個目錄,目錄里面的文件和子目錄都不壓縮 zip a.zip test111/* 只將 test111 目錄下的文件和目錄壓縮成 a.zip ,但不包含子目錄的內的所有文件和目錄;
zip -r a.zip test11/ 遞歸 test111 下的所有文件和目錄 進行壓縮; 使用這個!!!

格式:zip后面先跟目標文件名,即壓縮后的自定義壓縮包名,然后跟要壓縮的文件或者目錄。

思考:在壓縮目錄時,如果只寫目錄名(比如 zip a.zip folder/ ),會發生什么?若目錄下還有二級目錄甚至更多級目錄時,能否也一並壓縮二級目錄下的文件呢?

答:即使 folder 里面有文件和N級目錄,也不會打包這些,而是打包這個 folder 本身(不包括里面的文件和目錄);

如果想要一並壓縮目錄下的所有文件和目錄(包括多層目錄),必須加上 -r 選項:

zip -r a.zip folder/

zip的解壓

unzip a.zip

 查看zip

unzip -l a.zip

 

zcat 和 bzcat 查看壓縮包內的內容

上面介紹了使用-t選項可以查看tar壓縮包的文件列表(即:tar -tf 1.tar)。對於gzip2或者bzip2壓縮格式,可以用:

zcat 11.gz
bzcat 22.bz2

來查看壓縮包里面的內容;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM