créer répertoire selon le nom de fichier

créer répertoire selon le nom de fichier - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 26-02-2010 à 18:07:03    

Hello,
 
j'utilise come client mpd gmpc qui est exellent. il récolte les covers des albums avec brio. Le problème c'est qu'il créer un répertoire .cover dans le home avec un seul sous dossier par artiste (artisteA, artisteB,...) contenant les différentes covers de TOUS les albums de cet artiste. Or moi j'aimerais que il créer un sous-répertoire par album, dans le dossier d'un artiste, conetenant le fichier jpg de la cover.
 
 
exemple:
 
 
actuellement:
 
IThe doorsI
       album1.jpg
       albumxxx2.jpg
 
 
ce que j'aimerais:
 
IThe doorsI
 
      Ialbum1I
           album1.jpg
 
      Ialbumxxx2I
            albumxxx2.jpg
 
 
 
si quelqu'un sait comment faire ça? en graphique pas trouvé d'outil: métamorphose ne sait créer des répertoire basé surle nom de ficher :-/
 
merci :jap:
 

Reply

Marsh Posté le 26-02-2010 à 18:07:03   

Reply

Marsh Posté le 26-02-2010 à 20:56:13    

en pas graphique, un truc du genre doit marcher :

for i in *.jpg; do
dossier=`basename $i .jpg`
mkdir $dossier
mv $i $dossier/
done


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 27-02-2010 à 15:26:26    

Mjules a écrit :

en pas graphique, un truc du genre doit marcher :

for i in *.jpg; do
dossier=`basename $i .jpg`
mkdir $dossier
mv $i $dossier/
done



 
 
ca tue!!!! c'est exactement ca! (avec directory plutôt que dossier
merci beaucoup. :jap:
 
cependant un problème se pose pour les nom de fichier .jpp dont le nom contient des espaces ou des caractères genre &, etc ...
puis comment le faire en récursif pour des sous-dossier?
 
sinon comment je peux apprendre ce genre de script, c'est du shell script mais le "for i in " ca vient d'ou?
 
merci en tout cas :jap:


Message édité par morris aka the moose le 27-02-2010 à 15:27:19
Reply

Marsh Posté le 27-02-2010 à 16:10:27    

c'est les boucle en shell (bash ici, mais je ne pense pas que ce soit fondamentalement différent avec les autres), un grand classique.
 
i c'est une variable que j'ai nommé arbitrairement comme dossier.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 27-02-2010 à 20:59:19    

while read i
do
mkdir ${i%.*}
mv ${i} ${i%.*}
done < <(find -type f -iname *.jpg)


Cela évite les problèmes d'espaces dans les fichiers.


---------------
La réponse est 42
Reply

Marsh Posté le 27-02-2010 à 21:16:43    

merci :jap:

Reply

Marsh Posté le 28-02-2010 à 10:44:21    

twocats a écrit :

while read i
do
mkdir ${i%.*}
mv ${i} ${i%.*}
done < <(find -type f -iname *.jpg)


Cela évite les problèmes d'espaces dans les fichiers.


 
joli le find avec while, c'est plus sympa que la boucle :)


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed