Bonjour, tjs par rapport =C3=A0 mon probl=C3=A8me d'encodage ("script pour
renommer les fichiers et dossiers", Pascal m'avait fait un petit script
en lisp qui permet de renommer correctement tous les fichier ce trouvant
de le r=C3=A9pertoire o=C3=B9 est ex=C3=A9cut=C3=A9 le script.
Maintenant, je voudrais faire en sorte que le script s'applique =C3=A0 tous
les dossier r=C3=A9cursif du dossier courant.
Pour ce faire j'ai pens=C3=A9 =C3=A0 faire un petit script qui appel le scr=
ipt de
pascal.
avec une commande du genre : ls -d */ je parvient =C3=A0 lister tous les
r=C3=A9pertoires contenus dans le r=C3=A9pertoire courant, mais je ne parvi=
ent pas
=C3=A0 lister les r=C3=A9pertoires contenus dans ces r=C3=A9pertoires (ls -=
Rd */ me
renvoi la m=C3=AAme chose).
Je suis vraiment d=C3=A9butant au niveau script et unix, mais j'avais pens=
=C3=A9
utiliser le retour d'une telle fonction pour lancer le script dans tous
les r=C3=A9pertoires (enfin je vois pas trop encore comment ...)
Quelqu'un pourrait il m'aider un peut
voici le script de pascal : (message du Mon, 30 Oct 2006 21:34:53 +0100)
Je suis vraiment débutant au niveau script et unix, mais j'avais pensé utiliser le retour d'une telle fonction pour lancer le script dans tous les répertoires (enfin je vois pas trop encore comment ...)
Quelqu'un pourrait il m'aider un peut
oui :-)
for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done ou quelque chose comme ca
avec le script en question dans le repertoire d'où tu lances cette commande
Je suis vraiment débutant au niveau script et unix, mais j'avais pensé
utiliser le retour d'une telle fonction pour lancer le script dans tous
les répertoires (enfin je vois pas trop encore comment ...)
Quelqu'un pourrait il m'aider un peut
oui :-)
for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done
ou quelque chose comme ca
avec le script en question dans le repertoire d'où tu lances cette commande
Je suis vraiment débutant au niveau script et unix, mais j'avais pensé utiliser le retour d'une telle fonction pour lancer le script dans tous les répertoires (enfin je vois pas trop encore comment ...)
Quelqu'un pourrait il m'aider un peut
oui :-)
for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done ou quelque chose comme ca
avec le script en question dans le repertoire d'où tu lances cette commande
Je suis vraiment débutant au niveau script et unix, mais j'avais pensé utiliser le retour d'une telle fonction pour lancer le script dans tous les répertoires (enfin je vois pas trop encore comment ...)
Quelqu'un pourrait il m'aider un peut
oui :-)
for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done
Mais non! C'est tout sauf robuste.
find . -type d -exec sh -c 'cd "$0"&& /where/is/the/script' '{}' ';'
BL8s :
Je suis vraiment débutant au niveau script et unix, mais j'avais pensé
utiliser le retour d'une telle fonction pour lancer le script dans tous
les répertoires (enfin je vois pas trop encore comment ...)
Quelqu'un pourrait il m'aider un peut
oui :-)
for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done
Mais non! C'est tout sauf robuste.
find . -type d -exec sh -c 'cd "$0"&& /where/is/the/script' '{}' ';'
Je suis vraiment débutant au niveau script et unix, mais j'avais pensé utiliser le retour d'une telle fonction pour lancer le script dans tous les répertoires (enfin je vois pas trop encore comment ...)
Quelqu'un pourrait il m'aider un peut
oui :-)
for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done
Mais non! C'est tout sauf robuste.
find . -type d -exec sh -c 'cd "$0"&& /where/is/the/script' '{}' ';'
for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done
Mais non! C'est tout sauf robuste.
find . -type d -exec sh -c 'cd "$0"&& /where/is/the/script' '{}' ';'
"for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done"
pourquoi n'est ce pas robuste ?
lhabert
Fabien MORIN :
"for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done"
pourquoi n'est ce pas robuste ?
Les espaces et caractères de glob dans les noms de fichiers. (Je passe sur le « . » avant « ../nom_du_script », j'imagine que c'est une coquille, et sur le fait que le « cd .. » ne va faire ce qu'on veut que si il n'y a pas de sous-sous répertoires.)
Fabien MORIN :
"for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done"
pourquoi n'est ce pas robuste ?
Les espaces et caractères de glob dans les noms de fichiers. (Je passe sur
le « . » avant « ../nom_du_script », j'imagine que c'est une coquille, et
sur le fait que le « cd .. » ne va faire ce qu'on veut que si il n'y a pas
de sous-sous répertoires.)
"for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done"
pourquoi n'est ce pas robuste ?
Les espaces et caractères de glob dans les noms de fichiers. (Je passe sur le « . » avant « ../nom_du_script », j'imagine que c'est une coquille, et sur le fait que le « cd .. » ne va faire ce qu'on veut que si il n'y a pas de sous-sous répertoires.)
Je suis vraiment débutant au niveau script et unix, mais j'avais pensé utiliser le retour d'une telle fonction pour lancer le script dans tous les répertoires (enfin je vois pas trop encore comment ...)
Quelqu'un pourrait il m'aider un peut oui :-)
for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done
Mais non! C'est tout sauf robuste.
milles escuses ;-)
find . -type d -exec sh -c 'cd "$0"&& /where/is/the/script' '{}' ';'
tiens, pourquoi mettre les {} et ; dans des '' différents ?
Je suis vraiment débutant au niveau script et unix, mais j'avais pensé
utiliser le retour d'une telle fonction pour lancer le script dans tous
les répertoires (enfin je vois pas trop encore comment ...)
Quelqu'un pourrait il m'aider un peut
oui :-)
for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done
Mais non! C'est tout sauf robuste.
milles escuses ;-)
find . -type d -exec sh -c 'cd "$0"&& /where/is/the/script' '{}' ';'
tiens, pourquoi mettre les {} et ; dans des '' différents ?
Je suis vraiment débutant au niveau script et unix, mais j'avais pensé utiliser le retour d'une telle fonction pour lancer le script dans tous les répertoires (enfin je vois pas trop encore comment ...)
Quelqu'un pourrait il m'aider un peut oui :-)
for d in `find . -type d`; do cd $d; . ../nom_du_script; cd ..; done
Mais non! C'est tout sauf robuste.
milles escuses ;-)
find . -type d -exec sh -c 'cd "$0"&& /where/is/the/script' '{}' ';'
tiens, pourquoi mettre les {} et ; dans des '' différents ?
si, je veux exécuter le script uniquement dans des répertoires non cachés
Tu veux dire dont le nom commence par « . » ? Il suffit de dire à find de les exclure :
find . -type d '!' -name '.*' -exec sh -c 'cd "$0"&& /where/is/the/script' '{}' ';'
lhabert
BL8s :
tiens, pourquoi mettre les {} et ; dans des '' différents ?
Parce que '{} ;', ça ne marche pas. Si ta question est pourquoi mettre « {} » dans des « '' », effectivement, ça ne doit pas être nécéssaire, enfin on n'est jamais à l'abris d'un shell bizarre, et puis je préfère quoter dès que j'ai le moindre doute plutôt que de m'encombrer la mémoire avec la liste exacte des cas où c'est nécessaire.
BL8s :
tiens, pourquoi mettre les {} et ; dans des '' différents ?
Parce que '{} ;', ça ne marche pas. Si ta question est pourquoi mettre
« {} » dans des « '' », effectivement, ça ne doit pas être nécéssaire, enfin
on n'est jamais à l'abris d'un shell bizarre, et puis je préfère quoter dès
que j'ai le moindre doute plutôt que de m'encombrer la mémoire avec la liste
exacte des cas où c'est nécessaire.
tiens, pourquoi mettre les {} et ; dans des '' différents ?
Parce que '{} ;', ça ne marche pas. Si ta question est pourquoi mettre « {} » dans des « '' », effectivement, ça ne doit pas être nécéssaire, enfin on n'est jamais à l'abris d'un shell bizarre, et puis je préfère quoter dès que j'ai le moindre doute plutôt que de m'encombrer la mémoire avec la liste exacte des cas où c'est nécessaire.
« {} » dans des « '' », effectivement, ça ne doit pas être nécéssaire, enfin on n'est jamais à l'abris d'un shell bizarre, et puis je préfère quoter dès que j'ai le moindre doute plutôt que de m'encombrer la mémoire avec la liste exacte des cas où c'est nécessaire.
Oui mais ça, c'est codé en dur dans les muscles des doits. Quand je tappe « find », ça tappe tout seul « {} ; » derrière.
(Par contre, il faut bien quoter le « ; », sinon, rien ne va plus. Et c'est une erreur désespérément classique de débutant)
-- Matthieu
lhabert@clipper.ens.fr (Luc Habert) writes:
« {} » dans des « '' », effectivement, ça ne doit pas être nécéssaire, enfin
on n'est jamais à l'abris d'un shell bizarre, et puis je préfère quoter dès
que j'ai le moindre doute plutôt que de m'encombrer la mémoire avec la liste
exacte des cas où c'est nécessaire.
Oui mais ça, c'est codé en dur dans les muscles des doits. Quand je
tappe « find », ça tappe tout seul « {} ; » derrière.
(Par contre, il faut bien quoter le « ; », sinon, rien ne va plus. Et
c'est une erreur désespérément classique de débutant)
« {} » dans des « '' », effectivement, ça ne doit pas être nécéssaire, enfin on n'est jamais à l'abris d'un shell bizarre, et puis je préfère quoter dès que j'ai le moindre doute plutôt que de m'encombrer la mémoire avec la liste exacte des cas où c'est nécessaire.
Oui mais ça, c'est codé en dur dans les muscles des doits. Quand je tappe « find », ça tappe tout seul « {} ; » derrière.
(Par contre, il faut bien quoter le « ; », sinon, rien ne va plus. Et c'est une erreur désespérément classique de débutant)