Le 12/02/2013 19:01, Philippe Delavalade a écrit :
> Bonjour.
>
> J'ai un pépertoire qui contient des sous-répertoires ; dans chacun de ces
> derniers j'ai des fichiers sur lesquels je veux faire des opérations
> (toujours les mêmes).
>
> J'ai donc envisagé un script du genre
>
> for dir in `find -mindetph 1 -type d`
> do
>   pushd "$dir"
>   commande1
>   ...
>   commanden
>   popd
> done
>
> l'option -mindepth est là pour éviter les soucis avec ./
>
> Seulement ça ne marche pas car certains des sous-répertoires comporte une
> espace (ou plusieurs) dans leur nom.

ton find sort les résultats comme il faut, mais après 'in' ne sait plus
faire la différence entre les espaces séparant les résultats de find et
ceux qui sont dans les noms de répertoire.

mais une bonne pipe (;-p) et tout est repeuplé :

find ... | while read dir; do
    macommande      "$dir"
   ...
done


bien sûr, le défaut est que les actions sont dans un sous shell (elles
sont sous la pipe;-p). donc ça marche pas si tu veux que ta commande aie
une action sur ton shell courant. on s'en sort avec des echo foobar dans
le fils, que le père (ou la mère?) interprète et exécute.



-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/511d72b2.3060...@ml.netoyen.net

Répondre à