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 :
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
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.
Pourtant quand j'exécute le script en mode déboggage, on voit bien que les espaces sont toujours présents
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
Une idée ?
Merci d'avance