Ответы:
Как насчет просто:
$ 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"