#1 Le 07/07/2008, à 21:04
- pronoiaque
Bash: Changer la case recursivement ... bof :-(
Salut tout le monde.
Je cherche le bout de code magique pour changer la case un type de fichier en récursif... et je m'efforce d'éviter de faire des boucles:
find ./ -name '*.JPG' -type f -execdir mv {} `echo {} | tr [:upper:] [:lower:]` \;
mais bof
mv: `./IMG_0000.JPG' et `./IMG_0000.JPG' identifient le même fichier.
mv: `./IMG_0001.JPG' et `./IMG_0001.JPG' identifient le même fichier.
La finalité étant d'éviter les doublons de photos importés en masse d'une carte mémoire en FAT™
Merci d'avance !
#2 Le 07/07/2008, à 21:31
- pronoiaque
Re : Bash: Changer la case recursivement ... bof :-(
pff... la casse pas la case
#3 Le 07/07/2008, à 21:50
- Spalax
Re : Bash: Changer la case recursivement ... bof :-(
find ./ -name '*.JPG' -type f -execdir rename -n 's/.*/\L&/' {} \+
Ceci devrait t'afficher les changements qui seraient faient, sans rien modifier.
Enlève le "-n" pour effectuer effectivement ces changements.
Hors ligne
#4 Le 07/07/2008, à 22:03
- pronoiaque
Re : Bash: Changer la case recursivement ... bof :-(
J'obtiens une erreur :
./IMG_0001.JPG not renamed: & already exists
Par contre ça fonctionne avec:
find ./ -name '*.JPG' -type f -execdir rename -f 'y/A-Z/a-z/' {} \+
Nickel Chrome
Merci beaucoup Spalax
Dernière modification par pronoiaque (Le 07/07/2008, à 22:09)
"la télé commande" - AntiPubs Spotify
Hors ligne
#5 Le 07/07/2008, à 23:24
- Alain.g
Re : Bash: Changer la case recursivement ... bof :-(
salut
On peut utiliser convmv pour cela.
Exemple :
convmv -r --lower --notest *
-r : recursif
--lower : en minuscule
--notest : l'enlever d'abord pour voir ce que ça va donner
Dernière modification par Alain.g (Le 07/07/2008, à 23:30)
Xubuntu Karmic !
Hors ligne