2010-10-14 141 views
0

我有一個tarball,我想刪除所有.tcl,.bat,.log文件,除了 pkgIndex.tcl。在tar中刪除文件,使用通配符和異常

,如果我做

tar --delete -f mytarball.tar --wildcards *{.tcl,.log,.bat} 

我將pkgIndex.tcl將被刪除了,怎麼把那個在我的模式通配符例外?

剛試過

tar --delete -f mytarball.tar --wildcards *{.tcl,.log} --exclude=*pkgIndex.tcl 

tar --delete -f mytarball.tar --wildcards *{.tcl,.log} --exclude=pkgIndex.tcl 

無濟於事......

+2

也許有點明顯,但你試過'--exclude'選項嗎?這也應該在'superuser.com'上。 – Wolph 2010-10-14 01:59:30

+0

哦,好的,。我壞..我忽略了一個.. – tensaix2j 2010-10-14 02:02:19

+0

剛剛嘗試過,沒有工作,它仍然被刪除。 – tensaix2j 2010-10-14 02:17:47

回答

3

看起來當您使用--delete喜歡的GNU tar忽略--exclude。

您可以改爲tar tf mytarball.tar --wildcards *{.tcl,.log} | grep -v pkgIndex.tcl | tar --delete -f mytarball.tar -T -。這將列出匹配* .tcl或* .log的所有文件,grep的所有內容但是 pkgIndex.tcl,並將列表重新導入到tar中,這將從tarball中刪除這些文件。