壓縮:
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 底下
[root@linux ~]# cd /usr/local/src
[root@linux 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 解開而已
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -xzvf /tmp/etc.tar.gz etc/passwd
# 我可以透過 tar -tzvf 來查閱 tarfile 內的檔案名稱,如果單只要一個檔案,
# 就可以透過這個方式來下達!注意到! etc.tar.gz 內的根目錄 / 是被拿掉了!
範例五:將 /etc/ 內的所有檔案備份下來,並且儲存其許可權!
[root@linux ~]# tar -czvpf /tmp/etc.tar.gz /etc
# 這個 -p 的屬性是很重要的,尤其是當您要保留原本檔案的屬性
tar 主要命令
-c 建立包
-x 解包
-t 列出包中的內容
-r 增加檔案到指定包中
-u 更新包中的檔案
這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓檔案時可選的。
可選命令
-j 建立或解開包時 使用bzip2 進行壓縮或解壓
-z 建立或解開包時 使用gzip 進行壓縮或解壓
-Z 建立或解開包時 使用compress 進行壓縮或解壓
-f 後面跟指定的包檔案名稱
-v 顯示打包/解包過程
-C 指定解包後的路徑