voila avec mon find je liste tout les fichiers avec leurs chemin à partir de $1.
Code :
- [weed@localhost Documents]$ ./droit ./prog
- destination avant './prog/'
- destination avant './prog/convert'
- destination avant './prog/convert_binaire.c'
- destination avant './prog/convert_binaire.c~'
|
mais des qu'il y a un espace cela ne fonctionne plus :
Code :
- destination avant './prog/corrigé/Exercise
- destination avant 1-15.c'
- destination avant './prog/corrigé/Exercise
- destination avant 5-3.c'
|
j'ai donc rajouté un -exec echo \'{}\' \;` pour rajouter des simples quotes entre chaque entre chaque mots trouvés. Dans mon cas ca serait chemin+fichier. J'esperais avec les ' que ce soit considéré comme un seul mot avec la boucle for.
voila mon script :
Code :
- for i in `find $1 -exec echo \'{}\' \;`
- do
- echo "destination avant $i"
- done
|
et voila ce que cela me donne à cause de l'espace malgré les ' ' :
Code :
- destination avant './prog/corrigé/Exercise
- destination avant 1-15.c'
|
alors que j'aimerais avoir ceci :
Code :
- destination avant './prog/corrigé/Exercise 1-15.c'
|
pour que la variable $i soit exploitable.
Coment faire pour que ce soit pris en compte ?
PS : ceci n'est qu'un debut de mon script. Je vous explique ce que j'aimerai faire ca peut etre aider.
Lorsque j'ai fais ma sauvegarde de mon système ave tar, j'ai oublié de sauvegardé mes droits. Et donc j'aimerais bien les restaurer. Mon système actuel est bancal mais possède les bonnes permissions. J'aimerais donc copié les permissions de mon système actuel sur ma sauvegarde.
j'aimerais donc que lorsque lance mon script
[root@localhost Documents]#./droit /home/weed/sauvegarde /
ca faffase ceci :
/ ----copie (permission, owner, group) --> /home/weed/sauvegarde
Message édité par weed le 17-09-2004 à 22:34:43