深入理解tar包的壓縮與解壓

2021-10-05 23:25:05 字數 1873 閱讀 3801

對於tar包、壓縮包等相關概念的深入解釋

起初tar命令並不具備壓縮功能,其僅僅是個打包工具,因為有的時候目錄檔案是不可以在某些地方進行傳輸的,所以需要打包成乙個包檔案,還有乙個原因就是,目錄檔案是不可以直接進行壓縮的,所以需要先打包一下

後來因為傳輸需要進行壓縮,這樣一來能快速傳輸,二來可以節省空間,所以可以使用壓縮工具對包進行壓縮,產生以.gz.bz2結尾的壓縮檔案

至此相當於經歷了打包和壓縮兩個步驟,但是實際應用中,總是分兩步來做就顯得有些麻煩,於是tar命令有了引數可以使用,這些引數有:

引數作用

-c(小寫)

建立壓縮檔案

-x解開壓縮檔案

-t檢視壓縮包內有哪些檔案

-z用gzip格式壓縮或者解壓

-j(小寫)

用bzip2格式壓縮或者解壓

-j(大寫)

用xz格式進行壓縮或者解壓

-v顯示壓縮或者解壓的過程

-f目標檔名

-p(小寫)

保留原始的許可權與屬性

-p(大寫)

使用絕對路徑來壓縮

-c(大寫)

指定解壓到的目錄

其中需要額外解釋的是,-v引數一般情況下最好加一下,因為有時候,執行壓縮或者解壓縮操作時,可能需要花費比較長的時間,如果螢幕一直沒有輸出,一方面不好判斷進度情況,另一方面也會懷疑電腦是不是宕機了。

-f引數也很重要,必須放在引數的最後一位,代表要壓縮或者解壓到哪個指定的目錄

下面前後對比一下tar命令有了引數前後的變化

1、首先是沒有用tar的壓縮引數:

根據上述流程,可以看到主要分成了兩步,第一步是tar命令打包成包檔案,第二部是進行壓縮(有.gz和.bz2兩種格式可以選擇)

2、因為tar命令有引數,加了引數後就可以直接打包壓縮:

顯而易見,第二種方式比較方便,可以將打包與壓縮合併一起進行,只需要在使用tar命令時選擇適當引數即可

一般地可以這樣使用

[root@localhost ~]

# tar -czvf etc.tar.gz /etc/ #將/etc/下的檔案以gzip格式壓縮,壓縮過程進行顯示,壓縮後名字為etc.tar.gz

#此命令壓縮之後的etc.tar.gz檔案被儲存在當前目錄下

[root@localhost ~]

# tar -cjvf etc.tar.bz2 /etc/ #將/etc/下的檔案以bzip2格式壓縮,壓縮過程進行顯示,壓縮後名字文etc.tar.bz2

#壓縮後的etc.tar.bz2檔案被儲存在當前目錄下

[root@localhost ~]

# tar -xzvf etc.tar.gz -c /root/etc #將etc.tar.gz檔案以gzip格式解壓,解壓過程進行顯示,解壓到/root/etc下

[root@localhost ~]

# tar -xjcf etc.tar.bz2 -c /root/etc #將etc.tar.bz2檔案以bzip2格式解壓,解壓過程進行顯示,解壓到/root/etc下

總結:

tar打包和(gzip、bz2)壓縮實際上根本沒有半毛錢關係,只是tar命令順帶幫你提供了壓縮、解壓的引數而已

其他的壓縮與解壓方式、格式還有很多,不一一枚舉,僅舉以上常用的格式,相信這個對於tar包和壓縮的深入理解,會利於快速掌握對應的命令,否則死記硬背很容易忘記

–>有助於理解壓縮包解壓工具,建議收藏<–

tar包壓縮和解壓

tar.gz 格式解壓為 tar zxvf xx.tar.gz tar.bz2 格式解壓為 tar jxvf xx.tar.bz2 注。都有大z,因為都是用compress,它能對儲存文件壓縮解壓 tar czf tar.z jpg 將.jpz包壓縮tar包 tar xzf tar.z jpg 解壓...

Tar打包 壓縮與解壓縮

tar在linux上是常用的打包 壓縮 加壓縮工具,他的引數很多,折里僅僅列舉常用的壓縮與解壓縮引數 引數 c create 建立壓縮檔案的引數 x 解壓縮壓縮檔案的引數 z 是否需要用gzip壓縮 v 壓縮的過程中顯示檔案 f 置頂文件名,在f後面立即接檔名,不能再加引數 舉例 一,將整個 hom...

tar命令解壓壓縮包

linux系統用tar命令解壓壓縮包的時候,為了保持原有資料夾的屬性許可權,可以加 p命令 使用原檔案的原來屬性 方法如下 例子 將 tmp etc.tar.gz 檔案解壓縮在 usr local src 底下,保持目錄許可權不變 1 2 3 root linux cd usr local src ...