Re: Utilisation du parametre -exec de la commande find

Page principale

Répondre à ce message
Auteur: Edgar Bonet
Date:  
À: guilde
Sujet: Re: Utilisation du parametre -exec de la commande find
Le vendredi 5 janvier, Jean-Marc Coursimault a écrit :
> Donc si tu exécutes
> find . -name essai_bidon.pl -exec cp {} /tmp/toto`basename {} `;
>
> basename est exécuté avant le find : or basename {} renvoie simplement
> {} qui sera ensuite remplacé par find :
>
> c'est équivalent à taper
> find . -name essai_bidon.pl -exec cp {} /tmp/toto{};
>
> Backslasher les backticks ne marche pas non plus.


Ça ne marche pas car find exécute directement cp sans passer par un
shell.

> Une solution brutale est de créer une chaîne que tu feras exécuter (et
> interpréter) ensuite par bash :
>
> find . -name essai_bidon.pl -exec bash -c 'cp {} /tmp/toto`basename {}`' \;


Je ne dirais pas brutale. Si tu veux que les backticks soient
interprétés, il me semble que c'est la solution la plus logique...

Edgar.