1. 程式人生 > >linux中tar打包指定路徑檔案

linux中tar打包指定路徑檔案

壓縮:

tar czvf /data/backup/test.tar.gz /data/a/b/directory
解壓:

cd /data/test
 tar xzvf /data/backup/test.tar.gz

問題是,解壓後的檔案,在/data/test/data/a/b/directory裡面

要想解壓在當前目錄路徑。


這樣寫就可以解決了

tar czvf /data/backup/test.tar.gz /data/a/b/directory
改成

tar czvf /data/backup/test.tar.gz -C /data/a/b directory

-C是臨時切換工作目錄,-P是絕對路徑,在這裡只用到-C引數就行了


例如

要打包 /home/YingMu/ 資料夾且排除 /home/YingMu/111cn.net 資料夾


tar -czvf YingMu.tar /home/YingMu/ --exclude /home/YingMu/111cn.net

排除多個資料夾則在命令中新增多個目錄 --exclude 目錄名,例如:

tar -czvf YingMu.tar /home/YingMu/ --exclude /home/YingMu/111cn.net --exclude /home/YingMu/QQ

排除檔案的話把上面的目錄名改為類似 *.gif 的排除規則即可。


範例三:將 /tmp/etc.tar.gz 檔案解壓縮在 /usr/local/src 底下

[[email protected]linux~]# cd /usr/local/src

[[email protected] src]# tar -xzvf /tmp/etc.tar.gz
# 在預設的情況下,我們可以將壓縮檔在任何地方解開的!以這個範例來說,

# 我先將工作目錄變換到 /usr/local/src 底下,並且解開 /tmp/etc.tar.gz ,

# 則解開的目錄會在 /usr/local/src/etc 呢!另外,如果您進入 /usr/local/src/etc

# 則會發現,該目錄下的檔案屬性與 /etc/ 可能會有所不同喔!

範例四:在 /tmp 底下,我只想要將 /tmp/etc.tar.gz 內的 etc/passwd 解開而已

[[email protected] ~]# cd /tmp

[[email protected] tmp]# tar -xzvf /tmp/etc.tar.gz etc/passwd
# 我可以透過 tar -tzvf 來查閱 tarfile 內的檔名稱,如果單隻要一個檔案,

# 就可以透過這個方式來下達!注意到! etc.tar.gz 內的根目錄 / 是被拿掉了!

 
範例五:將 /etc/ 內的所有檔案備份下來,並且儲存其許可權!

[[email protected] ~]# tar -czvpf /tmp/etc.tar.gz /etc
# 這個 -p 的屬性是很重要的,尤其是當您要保留原本檔案的屬性

tar 主要命令

-c 建立包
-x 解包
-t 列出包中的內容
-r 增加檔案到指定包中
-u 更新包中的檔案
這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的引數是根據需要在壓縮或解壓檔案時可選的。
可選命令
-j 建立或解開包時 使用bzip2 進行壓縮或解壓
-z 建立或解開包時 使用gzip 進行壓縮或解壓
-Z 建立或解開包時 使用compress 進行壓縮或解壓
-f 後面跟指定的包檔名
-v 顯示打包/解包過程
-C 指定解包後的路徑