Re: Utilisation du parametre -exec de la commande find

Top Page

Reply to this message
Author: Frédéric BOITEUX
Date:  
To: Guilde
Subject: Re: Utilisation du parametre -exec de la commande find
Le ven 05 jan 2007 15:29:11 CET, Regis Gras
<Regis.Gras@???> a écrit :

> Bonjour,
>
>     J'ai une application qui necessite un fichier de nom "config.pl" dans un
> grand nombre de repertoires.
>      Je désire faire une copie de tous ces fichiers dans un repertoire 
> unique, en
> les prefixant par une chaine de caractéres.

>
>     Je voudrais utiliser find pour les retrouver et l'option -exec pour 
> faire
> la copie
>     Pour faire un test, j'ai crée un fichier essai_bidon.pl que j'ai rangé
> dans un repertoire: /home/dir.essai/dir.bidon
>     find . -name essai_bidon.pl retrouve sans probléme
>     ./dir.essai/dir.bidon/essai_bidon.pl

>
>     Pour le recopier, par exemple dans /tmp, en le prefixant par toto, j'ai
> essayé:
>     find . -name essai_bidon.pl -exec   -exec   cp {} /tmp/toto`basename 
> {}`  \;

>
>     Mais j'ai le message d'erreur suivant:
> cp: ne peut créer le fichier régulier 
> `/tmp/toto./dir.essai/dir.bidon/essai_bidon.pl':
> Aucun fichier ou répertoire de ce type

>
>     D'où ma question.
>     Comment faut il ecrire la (ou les) commandes que l'on voudrait faire 
> executer


D'après ton message d'erreur, il suffirait de rajouter un « / »
après /tmp/toto :
find . -name essai_bidon.pl -exec cp {} /tmp/toto/`basename {}` \;

mais en fait, il est plus simple de supprimer l'appel (inutile) à
basename :
find . -name essai_bidon.pl -exec cp {} /tmp/toto/ \;

    Fred.


PS : la guilde, c'est sur guilde@??? désormais !