Le Tue, 12 Feb 2013 19:01:44 +0100, Philippe Delavalade <philippe.delaval...@orange.fr> a écrit :
> Bonjour. > > J'ai un ré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. > > J'ai créé à titre d'exemple, un répertoire machin dans lequel j'ai > créé cinq sous-répertoires. > > voici ce que ça donne > > philippe:~/machin$ for dir in `find -mindepth 1 -type d` > > do > > echo "$dir" > > done > ./blu > blu > blu > ./ble > ble > ble > ./bli > bli > bli > ./bla > bla > bla > ./blo > blo > blo > > En fait les noms sont « splités » et donc ça ne marche pas. > > Autre essai : > > philippe:~/machin$ for dir in "`find -mindepth 1 -type d`" > > do > > echo "$dir" > > done > ./blu blu blu > ./ble ble ble > ./bli bli bli > ./bla bla bla > ./blo blo blo > > Là ça paraît mieux, j'ai bien les cinq sous-répertoires mais : > > philippe:~/machin$ for dir in "`find -mindepth 1 -type d`" > > do > > echo "$dir" > > pushd "$dir" > > echo "On est dans `pwd`" > > popd > > done > ./blu blu blu > ./ble ble ble > ./bli bli bli > ./bla bla bla > ./blo blo blo > bash: pushd: ./blu blu blu > ./ble ble ble > ./bli bli bli > ./bla bla bla > ./blo blo blo: Aucun fichier ou dossier de ce type > On est dans /home/philippe/machin > bash: popd: pile de répertoire vide > > Là ça se passe comme s'il n'y avait qu'un seul sous-répertoire dans > machin (une sorte de concaténation des cinq noms). > > J'ai, à tout hasard, essayé avec "${dir}" au lieu de "$dir" mais > c'est la même chose. > > J'ai cherché dans abs-guide mais je n'ai rien trouvé comme idée > nouvelle. > > J'ai bien la possibilité de faire un > rename 's/ /#/g' * > mais c'est du bricolage... > > Quelqu'un aurait-il une suggestion plus académique ? > > Merci d'avance. > bonjour, pourquoi ne pas employer "détox" pour lier les espaces ? apt-cache search detox detox - utility to replace problematic characters in filenames http://linux.die.net/man/1/detox slt bernard -- 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/20130213075408.44869500.bernard.schoenac...@free.fr