1. 程式人生 > >linux常用命令——tar命令

linux常用命令——tar命令

       通過SSH訪問伺服器,難免會要用到壓縮,解壓縮,打包,解包等,這時候tar命令就是是必不可少的一個功能強大的工具。linux中最流行的tar是麻雀雖小,五臟俱全,功能強大。

      tar 命令可以為linux的檔案和目錄建立檔案。利用tar,可以為某一特定檔案建立檔案(備份檔案),也可以在檔案中改變檔案,或者向檔案中加入新的檔案。 tar最初被用來在磁帶上建立檔案,現在,使用者可以在任何裝置上建立檔案。利用tar命令,可以把一大堆的檔案和目錄全部打包成一個檔案,這對於備份檔案 或將幾個檔案組合成為一個檔案以便於網路傳輸是非常有用的。

      首先要弄清兩個概念:打包和壓縮。打包是指將一大堆檔案或目錄變成一個總的檔案;壓縮則是將一個大的檔案通過一些壓縮演算法變成一個小檔案。

      為什麼要區分這兩個概念呢?這源於Linux中很多壓縮程式只能針對一個檔案進行壓縮,這樣當你想要壓縮一大堆檔案時,你得先將這一大堆檔案先打成一個包(tar命令),然後再用壓縮程式進行壓縮(gzip bzip2命令)。

      linux下最常用的打包程式就是tar了,使用tar程式打出來的包我們常稱為tar包,tar包檔案的命令通常都是以.tar結尾的。生成tar包後,就可以用其它的程式來進行壓縮。

一、tar語法

語法:tar [主選項+輔選項] 檔案或目錄
使用該命令時,主選項必須有,它告訴tar要做什麼事情,輔選項是輔助使用的,可以選用。
主選項:【一條命令以下5個引數只能有一個】
-c: --create 新建一個壓縮文件,即打包
-x: --extract,--get解壓檔案
-t: --list,檢視壓縮文件裡的所有內容
-r:--append 向壓縮文件裡追加檔案
-u:--update 更新原壓縮包中的檔案
輔助選項:
-z:是否同時具有gzip的屬性?即是否需要用gzip壓縮或解壓?一般格式為xxx.tar.gz或xx.tgz
-j:是否同時具有bzip2的屬性?即是否需要用bzip2壓縮或解壓?一般格式為xx.tar.bz2
-v:顯示操作過程!這個引數很常用
-f:使用文件名,注意,在f之後要立即接文件名,不要再加其他引數!
-C:切換到指定目錄
--exclude FILE:在壓縮過程中,不要將FILE打包

二、使用例項

1、打包

將img1和img2兩個資料夾打包成img.tar,僅打包不壓縮:
tar -cvf img.tar img1 img2

將img1和img2兩個資料夾打包成img.tar.gz,打包後,以gzip壓縮:
tar -zcvf img.tar.gz img1 img2

將img1和img2兩個資料夾打包成img.tar.bz2,打包後,以bzip2來壓縮:
 tar -jcvf img.tar.bz2 img1 img2

2、不解壓的情況下檢視

檢視img.tar中的所有內容:
tar -tf img.tar

檢視img.tar.gz的所有內容,加-v引數檢視詳細資訊,-z可有可無:


tar -tf img.tar.gz(tar -ztvf img.tar.gz)

檢視img.tar.bz2內容,加-v引數檢視詳細資訊,-j可有可無:
tar -tf img.tar.bz2 (tar -jtvf img.tar.bz2)

3、解壓

將img.tar減壓到temp目錄:
tar -xf ../img.tar temp

只減壓img.tar中的img1(解壓到當前目錄):
tar -xf ../img.tar img1

4、更新

tar -cf img.tar img1 img2,給img1增加了一張照片,現在用下面命令更新img.tar:
tar -uf img.tar img1

5、追加

tar -cf img.tar img1 img2,img.tar裡追加一個資料夾img3:
tar -rf img.tar img3

6、-C引數

-C(大C引數很有用,改變檔案目錄,多層時用)  -C, --directory=DIR        change to directory DIR
使用了-C引數改變目錄為-C後面 目錄,不管是在打包還是解壓都很有用。
用法:tar temp.tar file -C fileDir

把temp目錄及其下面的內容打包成img.tar:
tar -cf img.tar * -C temp

解壓img.tar到當前目錄下的temp目錄:
$ tar -xf img.tar -C temp

三、解壓方法總結

1、*.tar 用 tar –xvf 解壓
2、*.gz 用 gzip -d或者gunzip 解壓
3、*.tar.gz和*.tgz 用 tar –xzf 解壓
4、*.bz2 用 bzip2 -d或者用bunzip2 解壓
5、*.tar.bz2用tar –xjf 解壓
6、*.Z 用 uncompress 解壓
7、*.tar.Z 用tar –xZf 解壓
8、*.rar 用 unrar x 解壓
9、*.zip 用 unzip 解壓