Unix, linux, mv et les espaces ...
Résolu
poulpoul
-
sebsauvage Messages postés 32893 Date d'inscription Statut Modérateur Dernière intervention -
sebsauvage Messages postés 32893 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour tout le monde,
je voudrais dans un petit script, renommer les fichiers blabla_* en blabla - * comme ci-dessous :
un simple move en gros et pourtant ...
extrait du script :
mv Blabla_131.avi Blabla - 131.avi
mv Blabla_132.avi Blabla - 132.avi
mv Blabla_133.avi Blabla - 133.avi
mv Blabla_134.avi Blabla - 134.avi
cependant, après de nombreuses tentatives infructueuses et sachant que l'une des règles d'or d'unix-linux est "pas d'espace dans les noms de fichiers", j'aimerais quand meme pouvoir les renommer comme je le souhaite (tetu le gars)
en listant les fichiers par exemple : ls -rtl
-rwxrwxrwx 1 root root 183370956 2007-07-19 14:00 Blabla_131.avi
-rwxrwxrwx 1 root root 183433216 2007-07-19 14:01 Blabla_132.avi
-rwxrwxrwx 1 root root 183410688 2007-07-19 15:24 Blabla_133.avi
-rwxrwxrwx 1 root root 183410688 2007-07-19 15:24 Blabla_134.avi
et en passant par la commande :
mv Blabla_131.avi Blabla\ -\ 131.avi .. cela fonctionne ...
j'ai donc essayé la meme chose à l'intérieur du script ci-dessus mais en l'exécutant j'obtiens:
mv: la cible `Blabla_131.avi' n'est pas un répertoire
mv: la cible `Blabla_132.avi' n'est pas un répertoire
mv: la cible `Blabla_133.avi' n'est pas un répertoire
mv: la cible `Blabla_134.avi' n'est pas un répertoire
une histoire de déspécialisation des caractères spéciaux ou un truc dans le genre j'imagine ....
merci par avance,
Poulpoul
je voudrais dans un petit script, renommer les fichiers blabla_* en blabla - * comme ci-dessous :
un simple move en gros et pourtant ...
extrait du script :
mv Blabla_131.avi Blabla - 131.avi
mv Blabla_132.avi Blabla - 132.avi
mv Blabla_133.avi Blabla - 133.avi
mv Blabla_134.avi Blabla - 134.avi
cependant, après de nombreuses tentatives infructueuses et sachant que l'une des règles d'or d'unix-linux est "pas d'espace dans les noms de fichiers", j'aimerais quand meme pouvoir les renommer comme je le souhaite (tetu le gars)
en listant les fichiers par exemple : ls -rtl
-rwxrwxrwx 1 root root 183370956 2007-07-19 14:00 Blabla_131.avi
-rwxrwxrwx 1 root root 183433216 2007-07-19 14:01 Blabla_132.avi
-rwxrwxrwx 1 root root 183410688 2007-07-19 15:24 Blabla_133.avi
-rwxrwxrwx 1 root root 183410688 2007-07-19 15:24 Blabla_134.avi
et en passant par la commande :
mv Blabla_131.avi Blabla\ -\ 131.avi .. cela fonctionne ...
j'ai donc essayé la meme chose à l'intérieur du script ci-dessus mais en l'exécutant j'obtiens:
mv: la cible `Blabla_131.avi' n'est pas un répertoire
mv: la cible `Blabla_132.avi' n'est pas un répertoire
mv: la cible `Blabla_133.avi' n'est pas un répertoire
mv: la cible `Blabla_134.avi' n'est pas un répertoire
une histoire de déspécialisation des caractères spéciaux ou un truc dans le genre j'imagine ....
merci par avance,
Poulpoul
A voir également:
- Unix, linux, mv et les espaces ...
- Espaces insécables - Guide
- Linux reader - Télécharger - Stockage
- Tapez cette phrase, en respectant bien les espaces et la ponctuation. - Guide
- Toutou linux - Télécharger - Systèmes d'exploitation
- Backtrack linux - Télécharger - Sécurité
5 réponses
Salut,
$ ls -1 Blabla_131.avi Blabla_132.avi Blabla_133.avi Blabla_134.avi Blabla_135.avi $ for fic in *.avi; do mv "${fic}" "${fic/_/ - }"; done $ ls -1 Blabla - 131.avi Blabla - 132.avi Blabla - 133.avi Blabla - 134.avi Blabla - 135.avi $;-))
sachant que l'une des règles d'or d'unix-linux est "pas d'espace dans les noms de fichiers"
euh... c'est du passé, ça.
Tous le système peuvent maintenant manipuler sans problème ces fichiers.
Il suffit (selon les cas) de mettre des double-quote autout du nom, ou bien de mettre un antislash (\) devant chaque espace.
euh... c'est du passé, ça.
Tous le système peuvent maintenant manipuler sans problème ces fichiers.
Il suffit (selon les cas) de mettre des double-quote autout du nom, ou bien de mettre un antislash (\) devant chaque espace.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci beaucoup à tous
cela fonctionne nickel avec la boucle de Jipicy, encore merci
pour les espaces sebsauvage, je pensais que c'était encore d'actualité ...
justement à ce propos cuicuicuilesptitsoiseaux j'avais essayé la commande suivante :
$ mv Blabla_131.avi Blabla\ -\ 131.avi (avec les anti-slashes)
encore merci à tous
cela fonctionne nickel avec la boucle de Jipicy, encore merci
pour les espaces sebsauvage, je pensais que c'était encore d'actualité ...
justement à ce propos cuicuicuilesptitsoiseaux j'avais essayé la commande suivante :
$ mv Blabla_131.avi Blabla\ -\ 131.avi (avec les anti-slashes)
encore merci à tous