[Shell] Renommage de fichiers [Résolu/Fermé]

Signaler
Messages postés
667
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
8 janvier 2010
-
gregool
Messages postés
667
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
8 janvier 2010
-
Bonjour,

j'aimerai automatiser un renommage de fichiers sur ma station mais je ne sais pas pas quel bout prendre la chose:

j'ai un dossier MP3 avec dedans des sous dossiers qui contiennent des fichiers audio et des images qui vont avec l'album.

je voudrais renommer TOUT les .jpg present dans les sous dossiers de MP3 pour les renommer en folder.jpg

pour qu'ils soient pris en compte dans exaile!

comment est ce que je pourrais m'y prendre pour rechercher les .jpg et les renommer?

merci,

8 réponses

Messages postés
21511
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 426
Salut,


Pour les chercher
find /chemin/vers/repertoire -name '*.jpg'
Pour le renommer je n'ai pas compris la règle que tu veux appliquer à tous les fichiers.
Donne un quelques exemples concrets sur tes fichiers.
Messages postés
43481
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
4 665
Messages postés
667
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
8 janvier 2010
102
merci pour les liens les gars je regarde ça :)

@lami20j

un exemple concret dans Musique, j'ai un dossier par album, adns chaque dossier album j'ai un .jpg qui est en général au nom de l'album je m'en sert comme 'icone' dans nautilus pour identifier les albums d'un coup d'oeil.

il se trouve que exaile mon player a une norme pour les images, il peut afficher la pochette de l'album sans aller la chercher sur internet pourvu que celle ci s'appelle folder.jpg

donc je voudrais que TOUT les .jpg present dans musique s'appelle désormais folder.jpg

donc oui find ou locate pour trouver mv ou rename pour renommer mais je cherche comment tous les renommer.

je lis les liens de jipicy je vais ptet trouver mon bonheur :)

merci
Messages postés
21511
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 426
Re,

Bon, ton explication ne me donne pas un exemple concret.

Voici ce que j'appelle une exemple concret

J'ai dans Musique deux albums :
album1 et album2
Dans les deux albums(répertoires) j'ai un fichier
pochette.jpg

Le résultat à obtenir

pochette.jpg de album1 s'appellera album1_pochette.jpg
pochette.jpg de album2 s'appellera album2_pochette.jpg

C'est ça que tu veux?!
gregool
Messages postés
667
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
8 janvier 2010
102
lol non c'est pas mais presque je veux qu'ils s'appellent tous folder.jpg

donc pour reprendre ton exemple concret:

musique-->album 1--------------->chanson 1
| chanson2
| pochette.jpg
|-->album 2-------------->chanson1
chanson 2
nomdelalbum.jpg

et bien je souhaite que pochette.jpg devienne folder.jpg et que nomdelalbum.jpg devienne aussi folder.jpg

quelque soit le nom ou l'album la photo s'appellera folder.jpg

est-ce que c'est plus clair ou est ce que je m'enfonce? :)
Messages postés
43481
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
5 décembre 2019
4 665
En espérant avoir compris ta demande :
[tmpfs]$ tree
.
|-- album1
|   `-- pochette_album1.jpg
`-- album2
    `-- pochette_album2.jpg

2 directories, 2 files

[tmpfs]$ find . -name "*.jpg" -print0 | while read -r -d $'\0' fich; do echo "mv -- $fich ${fich%/*}/folder.jpg"; done
mv -- ./album2/pochette_album2.jpg ./album2/folder.jpg
mv -- ./album1/pochette_album1.jpg ./album1/folder.jpg

[tmpfs]$ find . -name "*.jpg" -print0 | while read -r -d $'\0' fich; do mv -- $fich "${fich%/*}/folder.jpg"; done

[tmpfs]$ tree
.
|-- album1
|   `-- folder.jpg
`-- album2
    `-- folder.jpg

2 directories, 2 files

[tmpfs]$
;-))
Messages postés
21511
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 426
Re,

Une autre possibilité
$ ls -lR musique/
musique/:
total 8
drwxr-xr-x 2 lami20j lami20j 4096 fév 14 13:50 album1
drwxr-xr-x 2 lami20j lami20j 4096 fév 14 13:49 album2

musique/album1:
total 0
-rw-r--r-- 1 lami20j lami20j 0 fév 14 13:49 chanson1
-rw-r--r-- 1 lami20j lami20j 0 fév 14 13:49 chanson2
-rw-r--r-- 1 lami20j lami20j 0 fév 14 13:50 pochette.jpg

musique/album2:
total 0
-rw-r--r-- 1 lami20j lami20j 0 fév 14 13:49 chanson1
-rw-r--r-- 1 lami20j lami20j 0 fév 14 13:49 chanson2
-rw-r--r-- 1 lami20j lami20j 0 fév 14 13:49 nomdelalbum.jpg
$ for i in $(find musique/ -name '*.jpg');do mv -v $i ${i%/*}/folder.jpg;done
`musique/album2/nomdelalbum.jpg' -> `musique/album2/folder.jpg'
`musique/album1/pochette.jpg' -> `musique/album1/folder.jpg'
$ ls -lR musique/
musique/:
total 8
drwxr-xr-x 2 lami20j lami20j 4096 fév 14 13:57 album1
drwxr-xr-x 2 lami20j lami20j 4096 fév 14 13:57 album2

musique/album1:
total 0
-rw-r--r-- 1 lami20j lami20j 0 fév 14 13:49 chanson1
-rw-r--r-- 1 lami20j lami20j 0 fév 14 13:49 chanson2
-rw-r--r-- 1 lami20j lami20j 0 fév 14 13:50 folder.jpg

musique/album2:
total 0
-rw-r--r-- 1 lami20j lami20j 0 fév 14 13:49 chanson1
-rw-r--r-- 1 lami20j lami20j 0 fév 14 13:49 chanson2
-rw-r--r-- 1 lami20j lami20j 0 fév 14 13:49 folder.jpg
lami20j@debian:~/trash$
gregool
Messages postés
667
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
8 janvier 2010
102
merci c'est dans cette voie que je vais essayer de creuser, chez moi ça me retourne une erreur :

mv: ne peut évaluer `Infinity/depcalculate.jpg': Aucun fichier ou répertoire de ce type

ça me fait ça sur tout les .jpg

mais ça ne doit pas etre loin
lami20j
Messages postés
21511
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 426 > gregool
Messages postés
667
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
8 janvier 2010

Re,

mv: ne peut évaluer `Infinity/depcalculate.jpg': Aucun fichier ou répertoire de ce type
Il faut se positionner dans le répertoire parent de répertoire Infinity.
Sinon il faut utiliser le chemin complet
for i in $(find /chemin/vers/Infinity -name '*.jpg');do mv -v $i ${i%/*}/folder.jpg;done


gregool
Messages postés
667
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
8 janvier 2010
102 > lami20j
Messages postés
21511
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019

:) j'ai essayé de mettre le chemin absolu vers mon repertoire musique mais ça ne veut pas.

ça me liste bien tout les repertoires, ça me trouve tout les jpg mais mais ça me fait la meme erreur sur chaque
Messages postés
21511
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 426
Re,

Peut être que c'est le moment de nous montrer ce que tu fais, pour voir les erreurs
gregool
Messages postés
667
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
8 janvier 2010
102
oui bonne idée:

donc
gregool@Vesta ~ $ ls -l
total 34
*
rwxr-xr-x 329 gregool gregool 9896 fév 9 19:34 MP3
*

gregool@Vesta ~ $ for i in $(find /home/gregool/MP3/ -name '*.jpg');do mv -v $i ${i%/*}/folder.jpg;done
mv: ne peut évaluer `Carmine': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `Meo': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `Boitier.jpg': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `/home/gregool/MP3/Dillinger': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `Escape': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `Plan/Under': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `the': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `running': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `board/Dillinger-Escape-Plan-Under-The-Running-Board-cover.jpg': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `/home/gregool/MP3/Dillinger': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `Escape': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `Plan/Calculating': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `Infinity/depcalculate.jpg': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `/home/gregool/MP3/Dillinger': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `Escape': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `Plan/Irony': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `is': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `a': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `Mokre': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `oczy/Budka': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `Suflera_back.jpg': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `/home/gregool/MP3/polskie': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `zespoly/budka': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `suflera/Budka': Aucun fichier ou répertoire de ce type
mv: ne peut évaluer `Suflera': Aucun fichier ou répertoire de ce type

juste qque lignes d'erreurs parceque en gros ça me liste tout mes dossiers en erreur
Messages postés
21511
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 426
Re,

Je pense que le nom de tes fichiers contiens des espaces
Essaie
$ find /home/lami20j/MP3/ -name '*.jpg'
/home/lami20j/MP3/album2/bb cc.jpg
/home/lami20j/MP3/album1/aa bb.jpg
$ find /home/lami20j/MP3/ -name '*.jpg' -execdir mv -v '{}' folder.jpg \;
`./bb cc.jpg' -> `folder.jpg'
`./aa bb.jpg' -> `folder.jpg'
$ find /home/lami20j/MP3/ -name '*.jpg'
/home/lami20j/MP3/album2/folder.jpg
/home/lami20j/MP3/album1/folder.jpg
Dans ton cas
find /chemin/vers/Infinity -name '*.jpg'  -execdir mv -v '{}' folder.jpg \;

gregool
Messages postés
667
Date d'inscription
jeudi 25 janvier 2007
Statut
Membre
Dernière intervention
8 janvier 2010
102
oui c'était bien ça le pb, ça a fonctionné :)

merci lami20j :) c'est sympa