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 !