Page 1 sur 1

[commande find] Redirection vers fichiers listés? (résolu)

Publié : sam. 17 déc. 2011, 15:19
par benjarobin
Bonjour,

J'ai constaté qu'un script que j'avais écrit quelque temps auparavant ne fonctionnait plus...
Pour faire simple il y avait une commande de ce genre :

Code : Tout sélectionner

find -name 'foo*' -exec echo auto > {} \;
Mais actuellement au lieu d'écrire auto dans les fichiers dont le nom commence par foo cela créer un fichier {} avec auto écrit autant de fois qu'il y a de fichiers trouvés.

Par contre la commande suivante fonctionne très bien

Code : Tout sélectionner

find -name 'foo*' -exec echo {} \;
qui affiche bien les fichiers trouvés

Il y a eu donc un changement dans le fonctionnement de la commande find ?
Comment contourner simplement le problème ?
J'ai envisager d'écrire une fonction bash que j’exporte ensuite, mais c'est un peu lourd...

Re: [commande find] Redirection vers fichiers listés? (en co

Publié : sam. 17 déc. 2011, 16:05
par FoolEcho
benjarobin a écrit :Comment contourner simplement le problème ?
Tu peux le faire comme ça:

Code : Tout sélectionner

find -name 'foo*' -exec sh -c 'echo auto > {}' \; #sh ou bash
Par contre, je ne sais pas pourquoi la redirection directe ne fonctionne effectivement pas (je me serais fait avoir :roll: ). :?:



EDIT: l'explication donnée ici me va bien:
http://unix.derkeiler.com/Newsgroups/co ... 00901.html
...en tous cas, on comprend d'où sort le fichier {} en sortie. :chinois: