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