2009-11-05 2 views

Répondre

0

find /directory -name '*.tgz' -exec tar ztf {} \| grep filename \; ou quelque chose comme ça ... Mais je ne pense pas qu'il existe une solution «facile».

1

I défini une fonction (zsh, des modifications mineures -> BaSh)

## preview archives before extraction 
# Usage:  show-archive <archive> 
# Description: view archive without unpack 
    show-archive() { 
     if [[ -f $1 ]] 
     then 
       case $1 in 
         *.tar.gz)  gunzip -c $1 | tar -tf - -- ;; 
         *.tar)   tar -tf $1 ;; 
         *.tgz)   tar -ztf $1 ;; 
         *.zip)   unzip -l $1 ;; 
         *.bz2)   bzless $1 ;; 
         *)    echo "'$1' Error. Please go away" ;; 
       esac 
     else 
       echo "'$1' is not a valid archive" 
     fi 
    } 

Vous pouvez

find /directory -name '*.tgz' -exec show-archive {} \| grep filename \; 
+0

Ça a l'air bien. Quelques commentaires: pourquoi gunzip + tar pour .tar.gz, mais tar -zt pour .tgz? Ils sont tous deux les mêmes de toute façon. bzless aussi ne fait pas trop bien dans les scripts ;-) Et probablement le fichier sera un tar.bz2 de toute façon, donc vous avez vraiment besoin de tar -jt – Wim

+0

BTW cela montrera seulement les fichiers correspondants par leur chemin * dans * l'archive, vous ne connaîtra pas le nom de l'archive de cette façon. – Wim

+0

puis-je suggérer d'utiliser la commande 'file' pour déterminer le type d'archive plutôt que l'extension de fichier –

0

Si votre archive est une sorte de paquet zippé, vous pouvez utiliser la fonction de goudron qui recherche un fichier particulier et imprime uniquement ce nom de fichier. Si votre tar prend en charge les caractères génériques, vous pouvez également les utiliser. Par exemple, sur mon système:

tar tf sprt12823.logs.tar --wildcards *tomcat* 

impressions:

tomcat.log.20090105 

bien qu'il y ait beaucoup plus de fichiers dans l'archive, mais un seul correspondant au modèle "* tomcat *". De cette façon, vous n'avez pas à utiliser grep.

Vous pouvez combiner ceci avec find et gunzip ou n'importe quel autre utilitaire de compression que vous avez utilisé.

Questions connexes