Réponses:
Que diriez-vous simplement:
$ tar tf archive.tar.gz | grep foo
tar tf graphics.tar.gz | find . --name *space*
mais ça ditunkown predicate --name
find
arguments @clamp ne prennent qu'un seul tiret, mais comme il s'agit d'une liste de fichiers sur stdin, vous souhaitez utiliser à la grep
place, comme l'exemple de code de hesse. Essayeztar tf graphics.tar.gz | grep 'space'
grep *foo*
n'est pas une expression régulière valide. greg
ne comprend pas les globes, il comprend les expressions régulières. Essayez grep foo
plutôt.
Montez l'archive en tant que répertoire. Vous pouvez le faire avec le système de fichiers AVFS , qui vous permet d'accéder à n'importe quelle archive en tant que répertoire dont le nom a une fin #
.
mountavfs
cd ~/.avfs$PWD
find archive.tar.gz\# -name '*foo*'
Je pense que cela fonctionne sans pipe et grep.
comme ça:
tar tvf archive.tar.gz "foo"
de cette façon, les globes fonctionneront également.
tar tvf archive.tar.gz "*.foo"