Risposte:
Che ne dici di:
$ tar tf archive.tar.gz | grep foo
tar tf graphics.tar.gz | find . --name *space*ma diceunkown predicate --name
findargomenti @clamp richiedono solo un trattino, ma poiché si tratta di un elenco di file su stdin, si desidera utilizzare grepinvece, come il codice di esempio di hesse. Provatar tf graphics.tar.gz | grep 'space'
grep *foo*non è un'espressione regolare valida. gregnon capisce i globs, capisce le espressioni regolari. Prova grep fooinvece.
Montare l'archivio come directory. Puoi farlo con il filesystem AVFS , che ti consente di accedere a qualsiasi archivio come directory il cui nome ha un finale #.
mountavfs
cd ~/.avfs$PWD
find archive.tar.gz\# -name '*foo*'
Penso che funzioni senza pipe e grep.
come questo:
tar tvf archive.tar.gz "foo"
in questo modo, anche i globs funzioneranno.
tar tvf archive.tar.gz "*.foo"