Bonjour
Je souhaiterais réaliser une suite de commandes plus ou moins complexes que l'option -exec de find ne me permet pas d'exécuter. Mais j'ai un problème récurrent avec la prise en charge des espaces.
Par exemple avec cp :
Je supprime tout d'abord le "./" au début du nom du fichier, puis je met des backslash devant les espaces pour que la commande cp puisse interpréter le nom correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #!/bin/bash find -name '*.pdf' -print | while read do filename="${REPLY#./}" filename2=${filename// /\ } cp $filename2 essai_${filename2} done
Pourtant quand j'exécute le script en mode déboggage, on voit bien que les espaces sont toujours présents
Une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cp fichier 1.pdf essai_fichier 1.pdf cp: la cible «*1.pdf*» n'est pas un répertoire
Merci d'avance![]()
Partager