Linux - tar命令

襲冷發表於2014-03-30
一、引數
    -c :建立一個壓縮檔案的引數指令(create 的意思)
    -x :解開一個壓縮檔案的引數指令
    -t :檢視 tarfile 裡面的檔案
    -z :是否同時需要用 gzip 壓縮
    -j :是否同時需要用 bzip2 壓縮
    -v :壓縮的過程中顯示檔案
    -f :定義文件名。注意:空格之後再接文件名,同時該引數後不要再接引數
    -p :使用原檔案的原來屬性(屬性不會依據使用者而變)
    -P :可以使用絕對路徑來壓縮
    -N :比後面接的日期(yyyy/mm/dd)還要新的內容才會被打包
    --exclude file:在壓縮的過程中,不要將 FILE 打包

二、注意
    1、在引數 f 之後的檔案檔名是自定義的,習慣上都用 .tar 來作為辨識。
    2、如果加 z 引數,則以 .tar.gz 或 .tgz 來代表 gzip 壓縮過的tar檔案
    3、如果加 j 引數,則以 .tar.bz2 來作為文件名

三、警告:Removing leading `/’ from member names
    1、首先應該明確在*nix系統中,使用tar對檔案打包時,預設是使用相對路徑,除非指定使用絕對路徑,一般也不建議使用絕對路徑。這裡說的相對路徑針對的是要被打包的原始檔。
    2、通常是在兩臺環境相似的機器上進行同步複製的時候,才有需要使用絕對路徑進行打包。使用絕對路徑打包時如果不指定相應的引數,tar會產生該警告資訊,並且實際產生的壓縮包會將絕對路徑轉化為相對路徑。
    3、更可靠的解決方法是在打包和解開的時候都使用引數 -P。

四、示例
    1、將當前目錄下所有.txt檔案打包並壓縮歸檔到檔案this.tar.gz
        tar -czvf this.tar.gz ./*.txt
    2、將當前目錄下的this.tar.gz中的檔案解壓到當前目錄
        tar -xzvf this.tar.gz ./
    3、在 /tmp 底下,只解壓/tmp/etc.tar.gz 內的 etc/passwd
        tar -zxvf /tmp/etc.tar.gz etc/passwd
 
 

相關文章