2012年7月4日 星期三

[Linux] tar壓縮相對路徑之目錄檔案

問題
tar壓縮檔案時,會將給的路徑全都壓縮進去
沒有辦法只壓縮目錄底下的某個子目錄

範例
$ tree
.
└── a
    └── b
        └── c
            └── d.txt

$ tar -jcv -f e.tar.bz2 a/b/c/d.txt
a/b/c/d.txt

→這樣壓縮起來,會把前面的資料夾也壓縮進去

如果我只要壓縮底下的子目錄以下要怎麼做呢?

解法
tar的-C參數,能夠臨時切換目錄
tar -jcv -f [壓縮的檔名] -C [臨時切換的目錄] [要壓縮的目錄或檔案]
$ tar -jcv -f e.tar.bz2 a/b/c/d.txt
↓換成
$ tar -jcv -f e.tar.bz2 -C a/b/c/ d.txt
d.txt