痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 4931|回復: 15

請教tar指令問題

[複製鏈接]
發表於 2011-3-18 21:43:52 | 顯示全部樓層 |閱讀模式
大家晚安︰
例如Linux下有個目錄bbs,bbs目錄下有一些檔案及3個子目錄,分別為a、b及c,這3個子目錄內也有一些檔案,我要用tar打包備份起來,所以我在bbs目錄下︰

tar -cvzf back.tar.gz *

我知道這樣沒有問題,我的問題是如果我不要備份b子目錄,那要如何下指令?
還有,如果我是不要備份b子目錄中的x檔案,那又要怎麼下指令?

有請精通tar高人指點。
謝謝!
發表於 2011-3-18 21:52:12 | 顯示全部樓層
我用在 crontab檔案內的~~~請參考吧

02 4 * * * root tar cvf /var/www.tar /var/www
發表於 2011-3-18 21:52:12 | 顯示全部樓層
排除b目錄
tar -cvzf back.tar.gz /bbs --exclude "b"

排除x檔案
tar -cvzf back.tar.gz /bbs --exclude=x

只是剛好搜尋到方法
發表於 2011-3-18 21:53:58 | 顯示全部樓層
原來要排除其他目錄阿~~
那我就不知道囉~~~
發表於 2011-3-18 21:58:37 | 顯示全部樓層
本帖最後由 coreylin 於 2011-3-18 09:59 PM 編輯

tar -cvzf back.tar.gz /bbs --exclude /b
將bbs打包起來,除了b資料夾以外
tar -cvzf back.tar.gz /bbs --exclude /b/x
將bbs打包起來,除了b資料夾裡的x以外
----------------以下是用法----------------------------------
--exclude FILE:在壓縮的過程中,不要將 FILE 打包!
----------------以上是用法-----------------------------------
老實說,除了念書有用過幾次linux的指令外,
到現在快十年沒碰了,忘光光了!
 樓主| 發表於 2011-3-18 22:04:37 | 顯示全部樓層
回復 3# shunxing

我不是問排程啦!

你需要白X馬力夯嗎?
 樓主| 發表於 2011-3-18 22:05:55 | 顯示全部樓層
回復 5# coreylin

coreylin老大,請受我一拜。
發表於 2011-3-18 22:16:04 | 顯示全部樓層
回復  shunxing

我不是問排程啦!

你需要白X馬力夯嗎?
wish 發表於 2011-3-18 10:04 PM http://bbs.pigoo.com/images/common/back.gif



您都只喜歡不要脫 不要脫
這樣伍佰會很難過的,廣告打那麼兇,您都沒看進去  n_102|
發表於 2011-3-18 22:21:40 | 顯示全部樓層
n_144|
回復  coreylin

coreylin老大,請受我一拜。
wish 發表於 2011-3-18 10:05 PM http://bbs.pigoo.com/images/common/back.gif



WISH大啊,不要拜我啊,我只是小弟而已,
我受不起您大那麼一拜啊!
n_144|
頭都昏了~~~
 樓主| 發表於 2011-3-18 23:07:32 | 顯示全部樓層
回復 9# coreylin

好吧!那我就不拜了。
謝謝!
另外又想到問題三,如果是子目錄a與子目錄b都不要備份呢?
是不是這樣?
tar -cvzf back.tar.gz /bbs --exclude /a /b

問題四,tar可不可以指定某個字母起頭的目錄不打包?例如bbs目錄裡面有下列三個子目錄︰
backup001
backup002
backup003
我要tar打包時忽略backup起頭的子目錄,那是不是應該這麼下指令︰
tar -cvzf back.tar.gz /bbs --exclude /backup*

先謝謝了!
 樓主| 發表於 2011-3-18 23:09:23 | 顯示全部樓層
回復 8# conbawa

18禁版好像還少個副版主,你有興趣嗎?
 樓主| 發表於 2011-3-19 00:09:48 | 顯示全部樓層
回復 3# ethan42411

差點漏了這一篇,謝謝你!
你查到的這一行有加引號,我有試過可以成功排除,但是不加引號也可以。
 樓主| 發表於 2011-3-19 00:16:16 | 顯示全部樓層
問題三我試出來了!應該要這麼下指令︰
tar -cvzf back.tar.gz /bbs --exclude /a --exclude /b
這樣才會成功兩個目錄不打包。

不過問題四我就試不出來了。
發表於 2011-3-19 06:21:35 | 顯示全部樓層
問題三我試出來了!應該要這麼下指令︰
tar -cvzf back.tar.gz /bbs --exclude /a --exclude /b
這樣才會成 ...
wish 發表於 2011-3-19 12:16 AM http://bbs.pigoo.com/images/common/back.gif


我試是行的..

# 建立一個 test 目錄做測試
cremaker@eagle:~$ mkdir test

# 建立4 個檔, 分別為 1,2,3,4, 及 4 個 test1-4 檔
cremaker@eagle:~$ touch test/{1,2,3,4} ;  touch test/test{1,2,3,4}

# 看看 test/ 下的檔案
cremaker@eagle:~$ ls test
1  2  3  4  test1  test2  test3  test4

# 建立 test.tar.gz
cremaker@eagle:~$ tar zcvf test.tar.gz test/ --exclude=test/test*
test/4
test/3
test/2
test/1

# list test.tar.gz 的內容
cremaker@eagle:~$ tar tf test.tar.gz
test/
test/4
test/3
test/2
test/1

-----

Wish  的問題, 就是在 --exclude  /...../..... 的第一個 / 符號..

由於 tar 會忽略第一個 / 符號, 所以會不成功.. 把 / 拿掉, 使用目前目錄的方式就可以了..

提供參考一下..

^_^
發表於 2011-3-19 06:23:17 | 顯示全部樓層
本帖最後由 cremaker 於 2011-3-19 07:41 AM 編輯

對了, 相關的說明, 可參考:

http://www.gnu.org/software/auto ... bsolute.html#SEC118

另外, 在 Linux 其實檔案及目錄可看成同樣的東西..

所以檔案及目錄用法是一樣的..

例如在上例中, 不要備份 test/foo/ 目錄下的檔案.. 則語法是:

tar zcvf  test.tar.gz test/ --exclude=test/test* --exclude=test/foo

如果一定要用絕對路徑的話, 加上 -P 這個參數, 例如:

tar zcvf test.tar.gz -P /home/cremaker/test/  --exclude=/home/cremaker/test/test* --exclude=/home/cremaker/test/foo

-P,  --absolute-names 在 tar --help 中的說明  don't strip leading `/'s from file names
 樓主| 發表於 2011-3-19 11:08:58 | 顯示全部樓層
回復 14# cremaker

果然這樣就成功了,請你受我一拜!
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-12-22 04:36 PM , Processed in 0.077686 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.