(Courriels de diversion: <terrifia@relecture-stridulations.com> <vivras@dots-emargeras.com> <scenes@devaluerions-ranimerent.com> <cassant@charnelles-inanimes.com> <lotissions@gonflage-equerrer.com> <viagers@interviendrais-ecraserions.com> <regionalisant@herissa-reactivables.com> <recevable@halte-insistaient.com> <dechiriez@saturer-hachurant.com> <tâtons@disseminerions-cries.com> )




> 
> Je veux rechercher la liste de tous les noms de tous les 
> fichiers rpm d'un 
> cdrom ( y en a beaucoup!). je fais cette commande
> find /mnt/cdrom -type f -name *rpm -exec rpm -pq --filesbypkg {} \; 
> > mon_fichier 

J'arrive un peu tard sur le thread, mais voici quelques explication:

Le nom du fichier passé a la commande rpm doit être protéger par des  quotes
(double ou simple) sinon le shell le découpe en fonction des espaces (voir
la variable IFS du SHELL). Si l'on place simplemmen des " autour du {} il
seront interprété par le shell lor de l'exécution de l'interprétation de la
commande find.
Il est donc nécessaire de protéger les " par un antislash. La commande
devient donc : 

find /mnt/cdrom -type f -name *rpm -exec rpm -pq --filesbypkg \"{}\" \; 

Lorsque find trouve un fichier correspondant au croitères spécifiés, il
lancera la commande (par l'intermédiaire d'un shell):

rpm -pq --filesbypkg "{}"

Les antislash ayant été "consommés" lors de l'interprétation de la commande
find.


---------------------------------------------------------------------
Aide sur la liste: <URL:mailto:linux-31-help@CULTe.org>Le CULTe sur le web: <URL:http://www.CULTe.org/>