2010-10-14 2 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

+0

Ох, хорошо, .my плохо..и упускал из виду тот один .. – tensaix2j

+0

Просто попробовал, не работал, он все равно удаляется. – tensaix2j

ответ

3

Выглядит как GNU дегтя игнорирует --exclude при использовании --delete.

Вместо этого вы можете сделать tar tf mytarball.tar --wildcards *{.tcl,.log} | grep -v pkgIndex.tcl | tar --delete -f mytarball.tar -T -. Это перечислит все файлы, соответствующие * .tcl или * .log, grep для всего , но pkgIndex.tcl и перетащите список обратно в tar, который удалит эти файлы из tarball.