En décomposant la ligne de commande : [mono]find . -type f -name “*.php”[/mono] [mono]-exec[/mono] [mono]sed -i -e ‘s/<?$/<?php/’ -e ‘s/<? /<?php /’[/mono] [mono]{}[/mono] [mono] ;[/mono]
[mono]find[/mono] rechercher
[mono].[/mono] dans le répertoire courant et ses sous-répertoires
[mono]-type f[/mono] les fichiers de type “fichier régulier”
[mono]-name ".php"[/mono] dont le nom se termine par (ou extension) [mono].php[/mono] (noms de fichiers correspondants au motif [mono].php[/mono])
[mono]-exec[/mono] exécuter la commande qui suit
[mono]sed -i -e ‘s/<?$/<?php/’ -e ‘s/<? /<?php /’[/mono] (voir la syntaxe de la commande [mono]sed[/mono])
[mono]{}[/mono] La chaîne [mono]{}[/mono] sera remplacée par le nom du fichier en cours de traitement.
le [mono] ;[/mono] terminera la commande [mono]-exec[/mono]
====
Pour tester, remplace la commande [mono]sed[/mono] par [mono]ls[/mono], ce qui donne une ligne de commande comme la ligne suivante :
[mono]find . -type f -name “*.php”[/mono] [mono]-exec[/mono] [mono]ls {}[/mono] [mono] ;[/mono]
qui va appliquer la commande [mono]ls[/mono] sur chaque fichier trouvé par [mono]find[/mono]
====
NOTE: En fait, il y a mieux comme ligne de commande, car dans le [mono]man find[/mono],
on peut lire qu’il vaudrait mieux utiliser [mono]-execdir[/mono] car cela permet :
de ne lancer la commande ([mono]sed[/mono]) qu’une seule fois, par, et depuis le répertoire du ou des fichiers à traiter (si cette commande peut traiter plusieurs fichiers à la fois, ce qui est le cas pour [mono]sed[/mono]),
et d’utiliser un chemin relatif pour les noms de fichiers.