Ответы:
Как насчет просто:
$ tar tf archive.tar.gz | grep foo
tar tf graphics.tar.gz | find . --name *space*
но там написаноunkown predicate --name
find
Аргументы @clamp занимают только одну черту, но поскольку это список файлов на stdin, вы хотите использовать grep
вместо него, как пример кода hesse. Попробуйтеtar tf graphics.tar.gz | grep 'space'
grep *foo*
недопустимое регулярное выражение. greg
не понимает глобусы, он понимает регулярные выражения. Попробуй grep foo
вместо этого.
Смонтируйте архив как каталог. Вы можете сделать это с файловой системой AVFS , которая позволяет вам получить доступ к любому архиву в виде каталога, имя которого заканчивается #
.
mountavfs
cd ~/.avfs$PWD
find archive.tar.gz\# -name '*foo*'
Я думаю, что это работает без трубы и grep.
как это:
tar tvf archive.tar.gz "foo"
таким образом, шары также будут работать.
tar tvf archive.tar.gz "*.foo"