#1 Le 14/11/2006, à 23:47
- edboq
[RESOLU] chercher & renommer des fichiers en masse
bonsoir,
récent utilisateur d'Ubuntu, je suis très noob en commande linux.
J'ai encore beaucoup de soucis dans l'agencement des commentaires des commandes
Je m'explique:
Si je veux supprimer un série de fichiers dans des sous répertoires en fonction de son extension
$ find . \( -name '*.jpg' -o -name '*.JPG' \) -exec rm -rf {} \;
Cette commande fonctionne
Puis-je maintenant associer une autre fonction que supprimer à find comme celle de renommer ?
si j'ai une image qui se trouve dans tous mes sous-répertoires, cette image ayant un nom et une extension aléatoire, puis-je la renommer par un nom fixe? ( image.jpg )
$ find . \( -name '*.jpg' -o -name '*.JPG' \) -exec mv image.jpg {} \;
j'ai l'erreur " mv: ne peut evaluer `image.jpg': Aucun fichier ou repertoire de ce type"
peux- être existe-t-til un autre moyen de le faire ?
les suggestions seront les bienvenues
Dernière modification par edboq (Le 16/11/2006, à 10:55)
Hors ligne
#2 Le 15/11/2006, à 02:08
- quelqu'un
Re : [RESOLU] chercher & renommer des fichiers en masse
Je n'ai pas bien compris ce que tu veux faire (nom fixe/aléatoire ?)
Mais si tu n'as rien contre une interface graphique, il y a krename qui est très bien pour tout ce qui est renommage de masse.
Tu peux prendre 10 fichiers d'un répertoire, 5 d'un autre, prendre seulement quelques sous-répertoires, prendre les fichiers du repertoire + ceux dans ses sous répertoire.
Tu peux aussi simplement déplacer tes fichiers (sans renommer) ou les déplacer puis supprimer automatiquement ce qui sont présents dans le repertoire de destination.
Tu peux modifier les extensions, ne modifier que les extensions en gardant le nom d'origine, garder le nom d'origine et l'extension mais rajouter un préfixe ou suffixe (nombre, date, personnalisé), tout modifier etc.
Tu peux faire pas mal de choses.
DE RE-RE-RETOUR... AHAH !!! Moi, l'Honorable, l'Illustrissime et vénérable, le vrai véritable et unique Quelqu'un, je viens vous montrer le chemin.
Pour s'adresser à ma personne, veuillez commencer votre discours par :
Ô sa Grandeur, son Excellence, Divinité de l'excellence, Dieu des Dieux, Roi de Toutes choses, Ô puissant esprit supérieur, nous t'implorons.
Hors ligne
#3 Le 15/11/2006, à 13:37
- edboq
Re : [RESOLU] chercher & renommer des fichiers en masse
merci de ta réponse
voici le soucis :
j'ai 940 répertoires dans chacun desquels j'ai une image (avec une extension qui peux être jpg / JPG / bmp.
je voudrais renommer toutes ces images en folder.jpg
Krename a l'air d'être pas mal mais je me vois mal aller dans tous les sous répertoires !!!
Hors ligne
#4 Le 15/11/2006, à 16:54
- quelqu'un
Re : [RESOLU] chercher & renommer des fichiers en masse
Tu as qu'une seule image dans chacun de ces répertoires ?
DE RE-RE-RETOUR... AHAH !!! Moi, l'Honorable, l'Illustrissime et vénérable, le vrai véritable et unique Quelqu'un, je viens vous montrer le chemin.
Pour s'adresser à ma personne, veuillez commencer votre discours par :
Ô sa Grandeur, son Excellence, Divinité de l'excellence, Dieu des Dieux, Roi de Toutes choses, Ô puissant esprit supérieur, nous t'implorons.
Hors ligne
#5 Le 15/11/2006, à 17:00
- edboq
Re : [RESOLU] chercher & renommer des fichiers en masse
oui une seule image mais avec une extension aléatoire (jpg / bmp / JPG ....)
Hors ligne
#6 Le 15/11/2006, à 17:03
- qqun d autre
Re : [RESOLU] chercher & renommer des fichiers en masse
find . \( -name '*.jpg' -o -name '*.JPG' \) -exec mv {} image.jpg \;
ben déja tu devrais inverser dans -exec mv {} image.jpg
ca serait plutôt -exec mv image.jpg {}
mais bon cela ne marcheras pas : ca déplaceras effectivement tout les *.(JPG/jpg) des répertoires
dans image.jpg du repertoire courrant (celui d'ou tu lance la commande).
il faudrait récupérer le path de chaque image pour le mettre dans le mv si j'ai bien compris ce que tu veux faire.
#7 Le 15/11/2006, à 17:08
- phavet
Re : [RESOLU] chercher & renommer des fichiers en masse
Pour moi, mv a comme arguments source puis nouveau nom
ta commande devrait donc être
................. mv {} image.jpg \;
à tester avec modération (sur un ss-rep)
car mv peut également déplacer les fichiers et je ne suis pas sûr le nouveau image.jpg ne soit pas dans le répertoire courant.
Auquel cas, après la commande ile te resterait un seul fichier sur les 940
Bon courage.
Faire et défaire c'est toujours travailler.
Tour assemblée, Asus F3Sc, Acer Aspire 5715z, Asus 1201HA ; Karmic (1) , Lucid (2), Natty(1)
Hors ligne
#8 Le 15/11/2006, à 17:10
- edboq
Re : [RESOLU] chercher & renommer des fichiers en masse
en effet, je ne souhaite pas déplacer les fichiers, je veux juste les renommer avec un nom fixe.
Hors ligne
#9 Le 15/11/2006, à 17:11
- quelqu'un
Re : [RESOLU] chercher & renommer des fichiers en masse
Alors avec krename il suffit de choisir le répertoire parent le plus élevé pour sélectionner l'ensemble du contenu de tout ces sous-répertoires.
Tu cliques sur ajouter et quand tu choisis ton répertoire à la place de faire un simple clic qui ouvre le répertoire, tu fais Ctrl + clic qui sélectionne le repertoire et ses sous-répertoires, tu valides et normalement dans la fenêtre de krename il va apparaitre une liste avec la totalité du contenu de tout ses répertoires.
Maintenant si il n'y a pas de dossier parent et que ce sont 940 dossiers dispatchés de partout sur ton (ou tes) disque, bonne chance je ne sais pas comment faire, en dehors du « un par un ».
Si tu plusieurs dossiers parents genre :
rep 1 avec 300 sous répertoires
rep 2 avec 200 sous répertoires
et rep 3 avec 400 sous répertoires
tu fais ce que je viens de dire mais 3 fois, une fois avec rep1, une fois avec...
Et quand tu as fini ça, tu cliques sur suivant >> pour renommer ou déplacer tes fichiers.
Par défaut quand tu sélectionnes un répertoire en utilisant Ctrl + clic tous les sous-répertoires sont sélectionnés également (même si c'est précisé nulle part).
EDIT : ce n'est pas automatique par défaut, il y a une case à cocher au moment du choix du repertoire/fichier «ajouter les repertoires récursivement» ou un truc comme ça, dsl il me semblait que c'était comme ça par défaut.
Dernière modification par quelqu'un (Le 15/11/2006, à 17:15)
DE RE-RE-RETOUR... AHAH !!! Moi, l'Honorable, l'Illustrissime et vénérable, le vrai véritable et unique Quelqu'un, je viens vous montrer le chemin.
Pour s'adresser à ma personne, veuillez commencer votre discours par :
Ô sa Grandeur, son Excellence, Divinité de l'excellence, Dieu des Dieux, Roi de Toutes choses, Ô puissant esprit supérieur, nous t'implorons.
Hors ligne
#10 Le 15/11/2006, à 17:22
- edboq
Re : [RESOLU] chercher & renommer des fichiers en masse
merci de votre support
peux -être la commande mv n'est-elle pas appropriée,
je voudrais les renommer, pas les déplacer !
un script ne ferait-il pas l'affaire ?
Dernière modification par edboq (Le 15/11/2006, à 17:25)
Hors ligne
#11 Le 15/11/2006, à 17:26
- quelqu'un
Re : [RESOLU] chercher & renommer des fichiers en masse
j'ai voulu tester pour être sûr, mais je me suis raté de rep et j'ai lancé un repertoire (récursivement) qui contient plus de 12 000 fichiers, alors ça fonctionne bien je peux te le confirmer mais là c'est un peu long à charger
DE RE-RE-RETOUR... AHAH !!! Moi, l'Honorable, l'Illustrissime et vénérable, le vrai véritable et unique Quelqu'un, je viens vous montrer le chemin.
Pour s'adresser à ma personne, veuillez commencer votre discours par :
Ô sa Grandeur, son Excellence, Divinité de l'excellence, Dieu des Dieux, Roi de Toutes choses, Ô puissant esprit supérieur, nous t'implorons.
Hors ligne
#12 Le 15/11/2006, à 17:38
- pabix
Re : [RESOLU] chercher & renommer des fichiers en masse
Je le ferais en bash. Si je comprends bien, tu as une pléthore de dossiers contenant chacun une image ?
1er jet :
CURDIR=$(pwd)
for i in $(ls)
do
[ -d $CURDIR/$i ] && (
cd $CURDIR/$i
for j in $(ls *JPG *jpg *bmp)
do
convert $j folder.jpg
rm $j
done
cd $CURDIR
)
done
Et ça te convertira en jpg en prime. Si, par contre, tes noms de fichiers ou de répertoires ont des espaces, ça foirera.
Benoit
Dernière modification par pabix (Le 15/11/2006, à 17:40)
Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D
Hors ligne
#13 Le 15/11/2006, à 17:46
- toto2006
Re : [RESOLU] chercher & renommer des fichiers en masse
ou sinon une conjonction des deux
tu creer un tout petit script bash : renom.sh
mv $1 `dirname $1`/folder.jpg
chmod +x renom.sh
et tu fait ton find :
find . \( -name '*.jpg' -o -name '*.JPG' \) -exec ./renom.sh {} \;
et normalement cela te remplace tout les jpg/JPG par folder.jpg
enfin teste quand meme avant d'essayer sur tes 940 fichiers
Hors ligne
#14 Le 15/11/2006, à 17:48
- edboq
Re : [RESOLU] chercher & renommer des fichiers en masse
merci toto2006
mes repertoires ont des espaces
j'ai une erreur du coup qui me dit :
dirname: opérande surnuméraire `dossier/frfr.jpg'
Pour en savoir davantage, faites: « dirname --help ».
mv: la cible `/folder.jpg' n'est pas un répertoire
je ne comprends pas tout...
Dernière modification par edboq (Le 15/11/2006, à 18:53)
Hors ligne
#15 Le 16/11/2006, à 10:55
- edboq
Re : [RESOLU] chercher & renommer des fichiers en masse
voila ce que j'ai pu glaner dans le forum anglais
cela semble fonctionner
sudo apt-get install mmv
find . \( -name *.jpg -o -name *.JPG -o -name *.bmp \) -exec mmv -r {} picture.jpg \;
:D
Hors ligne
#16 Le 16/11/2006, à 11:55
- toto2006
Re : [RESOLU] chercher & renommer des fichiers en masse
Cool si ca marche alors avec mmv (que je ne connais pas) .
Sinon effectivement l'erreur est due aux espaces , a titre d'info , je pense que l'utilisation des guillemets devrait résoudre le problème .
renom.sh
mv "$1" "`dirname "$1"`/folder.jpg"
find . \( -name '*.jpg' -o -name '*.JPG' \) -exec ./renom.sh {} \;
Hors ligne
#17 Le 16/11/2006, à 13:21
- edboq
Re : [RESOLU] chercher & renommer des fichiers en masse
niquel ca passe aussi !
très intéressant
merci à vous tous
:D:):)
Hors ligne