Rechercher : dans
Par :

Unix, linux, mv et les espaces ...

Dernière réponse le 8 avr 2008 à 21:48:18 poulpoul, le 8 avr 2008 à 17:18:23 
 Signaler ce message aux modérateurs

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

Configuration: Linux Mandriva
bash
Firefox 2.0.0.12

Meilleures réponses pour « unix, linux, mv et les espaces ... » dans :
Création d'une commande sous Linux VoirLe monde Unix/Linux n'est pas toujours facile à prendre main. Et parfois pour parvenir à ses fins, on est bien heureux de savoir réaliser une petite commande ! Voyons ce qu'est une commande et comment cela se passe ! *Qu'est-ce qu'une commande...
Unix et Linux: Un héritage VoirLes différents Linux et Unix ne sont pas apparus par génération spontanée: Ils sont généralement dérivés d'autres Unix/Linux. Voir un résumé de l'héritage des distributions majeures: (Schéma réalisé avec le logiciel opensource yEd) Note Ce...
Les principaux process de Ingres (Unix & Windows) VoirLes principaux processes Ingres (Unix et Windows) Name Server - Serveur de noms : iigcn Communications Server - Ingres/Net : iigcc Recovery - Gestion des transactions : dmfrcp (ou iidbms (dmfrcp) sous Unix/Linux) Archiver - Gestion de la...
Télécharger Unison VoirUnison est un logiciel de synchronisation de répertoires. Il est capable de travailler de manière bidirectionnelle, c'est à dire que vous pouvez effectuer des modifications dans les deux répertoires, et Unison les synchronisation...
Les commandes FTP VoirLe protocole FTP FTP (File Transfer Protocol) est un protocole, c'est-à-dire un langage standard de communication entre deux machines, permettant à des machines de types différents (ou dont le système d'exploitation est différent) de...
Introduction à Linux VoirHistorique et génèse de Linux Linus B.Torvalds est à l'origine de ce système d'exploitation entièrement libre. Au début des années 90, il voulait mettre au point son propre système d'exploitation pour son projet de fin d'étude. Linus Torvalds...
Linux - L'éditeur Vi VoirIntroduction à Vi Vi est un des éditeurs de texte les plus populaires sous les systèmes de type Unix (avec Emacs et pico) malgré son ergonomie très limitée. Sous Linux il existe une version libre de Vi appelée Vim (Vi Improved). Vi (prononcez...

1

sebsauvage, le 8 avr 2008 à 17:21:39

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.

Répondre à sebsauvage

2

jipicy, le 8 avr 2008 à 17:24:19

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
$
;-))
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.

Répondre à jipicy

3

cuicuicuilesptitsoiseaux, le 8 avr 2008 à 17:24:49

Salut.

Tu as essayé ça :

mv Blabla_131.avi 'Blabla - 131.avi'

en utilisant le symbole ' ?

Bye.

Répondre à cuicuicuilesptitsoiseaux

4

Poulpoul, le 8 avr 2008 à 17:41:05

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

Répondre à Poulpoul

5

 sebsauvage, le 8 avr 2008 à 21:48:18
  • +1

Je marque le problème comme résolu.
Penses à le faire les prochaines fois :-)

Répondre à sebsauvage
Collection CommentÇaMarche.net