[Shell] Renommage de fichiers

Résolu
gregool Messages postés 678 Statut Membre -  
gregool Messages postés 678 Statut Membre -
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,

--

Si ya pas de solution c'est qui a pas de problème !
Configuration: Gentoo
Firefox 3.0.6

8 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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.
    0
  2. gregool Messages postés 678 Statut Membre 112
     
    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
    0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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?!
    0
    1. gregool Messages postés 678 Statut Membre 112
       
      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? :)
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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]$
    ;-))
    0
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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$
    
    0
    1. gregool Messages postés 678 Statut Membre 112
       
      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
      0
      1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > gregool Messages postés 678 Statut Membre
         
        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


        0
      2. gregool Messages postés 678 Statut Membre 112 > lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
         
        :) 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
        0
  7. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,

    Peut être que c'est le moment de nous montrer ce que tu fais, pour voir les erreurs
    0
    1. gregool Messages postés 678 Statut Membre 112
       
      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
      0
  8. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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 \;

    0
    1. gregool Messages postés 678 Statut Membre 112
       
      oui c'était bien ça le pb, ça a fonctionné :)

      merci lami20j :) c'est sympa
      0