Pour pouvoir rechercher des fichiers abrités dans des archives il faut au préalable créer des fichiers dressant liste des contenus de ces derniers.
Le tandem find xargs peut à cet effet permettre de
traiter toutes les archives grâce à un petit script approprié.
Exemple proposé : les rpm.
Le script (appelé /usr/local/bin/contenu-rpm) :
#!/bin/sh echo '===============' >> /tmp/$1 echo $2 >> /tmp/$1 rpm -qilp $2 >> /tmp/$1
La commande à invoquer dans le répertoire contenant les RPM :
find . -type f -name '*.rpm' | xargs -r -n1 /usr/local/bin/contenu-rpm NOMCDRemplacer NOMCD par le nom du CD (par exemple "Red-Hat-4.2") puis, le traitement achevé, placer le fichier
/tmp/NOMCD en lieu sûr. La
commande grep permettra, en temps utile, d'y retrouver ce que l'on
cherche.
Autre exemple : les deb de Debian
#!/bin/sh echo '===============' >> /tmp/$1 echo $2 >> /tmp/$1 dpkg -I >> /tmp/$1 dpkg -c >> /tmp/$1
Rechercher par :
find . -type f -name '*.deb' | xargs -r -n1 /usr/local/bin/contenu-deb NOMCD
Pour mieux comprendre l'action de find et xargs insérer,
dans la commande proposée, un echo juste avant
/usr/local/bin/contenu-rpm afin de voir les commandes produites au
lieu de laisser le système les exécuter.