Відповіді:
Як щодо:
$ 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*'
Я думаю, що це працює без труби та грепа.
подобається це:
tar tvf archive.tar.gz "foo"
оскільки таким чином працюватимуть і глобуси.
tar tvf archive.tar.gz "*.foo"