Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

Si vous avez des soucis pour rester connecté, déconnectez vous et reconnectez vous depuis ce lien en cochant le case
Me connecter automatiquement lors de mes prochaines visites.

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#1 Le 01/05/2010, à 11:34

cricri38

remplacer espaces dans tous les dossier [résolu]

bonjour ,
je souhaiterais remplacer les espaces des noms de tous mes dossier (mal gérés par différentes applications ) par des  _    , j'imagine que c'est facilement possible par ligne de commande , mais je sais pas comment faire , j'ai bien vu des trucs dans les forums , mais toujours liés avec d'autres commandes , ou pas clair .

vu que j'ai du mal avec les codes je préfère pas faire qque chose si je suis pas sur du code , surtout si ça doit toucher tous les dossiers .

alors si qqu'un pourrait m'aider j'en serait très heureuse.
merci

Dernière modification par cricri38 (Le 01/05/2010, à 14:11)


version : lucid
gnome 2.30.2

Hors ligne

#2 Le 01/05/2010, à 12:29

skingrapher

Re : remplacer espaces dans tous les dossier [résolu]

Bonjour,

Il existe un utilitaire en ligne de commande qui fait exactement ce boulot; il s'appelle detox. Il remplace automatiquement les espaces par des underscores.
Exemple:

detox mon\ fichier

Le fichier sera renommé en mon_fichier.

Ça fonctionne aussi pour les répertoires.


Je suis un obsédé textuel. J'aime trop le LaTeX.

Hors ligne

#3 Le 01/05/2010, à 12:38

hardball

Re : remplacer espaces dans tous les dossier [résolu]

je te propose de le faire en plusieurs étapes

1/ recherche des fichiers et dossiers avec un espace dans ta home :

find $HOME -name "* *" > /tmp/liste-des-fichiers-et-dossiers-avec-un-espace

tu peux ainsi vérifier ce que le find a trouvé (en éditant le fichier /tmp/liste-des-fichiers-et-dossiers-avec-un-espace)

2/ création du script de renommage

perl -ne 'chomp;$old=$_;s/\s/_/g;print "mv -f \"$old\" $_ \n"' /tmp/liste-des-fichiers-et-dossiers-avec-un-espace >/tmp/renommage.sh
chmod 0777 /tmp/renommage.sh

dans la commande ci-dessus
s/\s/_/g signifie de remplacer espace par underscore
si tu voulais mettre plutot des tirets : s/\s/-/g

3/ apres avoir vérifié le fichier /tmp/renommage.sh, tu peux le lancer depuis un terminal




PS: il existe aussi la commande rename

Dernière modification par hardball (Le 01/05/2010, à 12:43)


-- Toshiba satelliteA100-335 + Ubuntu Jaunty --
Pour les noobs : Bienvenue ! ici la perséverance vous récompense.
Pour les anciens : Merci à vous de partager votre savoir.
Et vive le perl !

Hors ligne

#4 Le 01/05/2010, à 12:39

hardball

Re : remplacer espaces dans tous les dossier [résolu]

skingrapher a écrit :

Il existe un utilitaire en ligne de commande qui fait exactement ce boulot; il s'appelle detox.

merci pour l'info skingrapher


-- Toshiba satelliteA100-335 + Ubuntu Jaunty --
Pour les noobs : Bienvenue ! ici la perséverance vous récompense.
Pour les anciens : Merci à vous de partager votre savoir.
Et vive le perl !

Hors ligne

#5 Le 01/05/2010, à 12:54

cricri38

Re : remplacer espaces dans tous les dossier [résolu]

merci à tous les deux !
super ; detox à l'aire plus simple , mais je vais tester aussi la méthode script histoire d'apprendre à faire .
merci à tous les deux !


version : lucid
gnome 2.30.2

Hors ligne

#6 Le 01/05/2010, à 13:24

credenhill

Re : remplacer espaces dans tous les dossier [résolu]

hello

 find . -depth -name "* *"  -exec rename 's/ /_/g' "{}" \;

Hors ligne

#7 Le 01/05/2010, à 13:39

cricri38

Re : remplacer espaces dans tous les dossier [résolu]

hardball a écrit :

je te propose de le faire en plusieurs étapes

1/ recherche des fichiers et dossiers avec un espace dans ta home :

find $HOME -name "* *" > /tmp/liste-des-fichiers-et-dossiers-avec-un-espace

tu peux ainsi vérifier ce que le find a trouvé (en éditant le fichier /tmp/liste-des-fichiers-et-dossiers-avec-un-espace)

2/ création du script de renommage

perl -ne 'chomp;$old=$_;s/\s/_/g;print "mv -f \"$old\" $_ \n"' /tmp/liste-des-fichiers-et-dossiers-avec-un-espace >/tmp/renommage.sh
chmod 0777 /tmp/renommage.sh

dans la commande ci-dessus

le fichier tmp est bien crée , le script aussi , mais quand je le lance il semble agir , mais au final rien ! y à t'il une subtilité qui m'aurait échappée?


version : lucid
gnome 2.30.2

Hors ligne

#8 Le 01/05/2010, à 14:10

cricri38

Re : remplacer espaces dans tous les dossier [résolu]

credenhill a écrit :

hello

 find . -depth -name "* *"  -exec rename 's/ /_/g' "{}" \;

Merci credenhill !! super !! ça , ça marche nickel !! .... il me faudra vraiment apprendre tous ces termes et la manière de s'en servir , parce que c'est vraiment très pratique !

merci encore à tous pour votre aide


version : lucid
gnome 2.30.2

Hors ligne