Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/11/2007, à 10:55

Takahani

[résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

Bonjour,

Possédant une importante bibliothèque musicale je souhaiterais voir apparaitre les pochettes des albums sur les dossiers les contenant. J'ai remarquer que sous kde, il suffit d'avoir un fichier qui se nomme ".directory" et qui contient simplement ces deux lignes

[Desktop Entry]
Icon=./cover.png

Comme dans chaque dossier d'un album j'ai le bon fichier "cover.png", il suffirait de dupliquer ce fichier dans tous les sous répertoires du répertoire principal. Il faudrait donc un petit script d'exploration en bash, qui parcourt tous les dossiers, et copie ce petit fichier .directory à  l'intérieur...
bash est très puissant, ça doit bien pouvoir se faire, non ?
A vous programmeur de talent !

Dernière modification par Takahani (Le 22/11/2007, à 13:43)


                         
http://simon-in-china.over-blog.com

"Me voici professeur Thibault, qu'avez vous découvert ?"

Hors ligne

#2 Le 22/11/2007, à 11:02

maskott

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

dans ton repertoire "music" tu met le script, et un fichier .directory

#!/bin/bash
for i in * ; do
if [ -d "$i" ]
then
cp .directory ./"$i"
fi
done

faut rendre le script éxecutable avant
chmod u+x script

Dernière modification par maskott (Le 22/11/2007, à 11:21)


Backups are for wimps. Real men upload their work to an ftp server and have everybody mirror it. - Linus Torvalds
                                                                               
[RESOLU] dans les posts qui le sont, merci
(Et si vous y arrivez tout seul, indiquez aussi la solution, remerci)

Hors ligne

#3 Le 22/11/2007, à 11:08

maskott

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

bon y a un petit souci quand y a un espace dans le nom du dossier... je regarde ça


Backups are for wimps. Real men upload their work to an ftp server and have everybody mirror it. - Linus Torvalds
                                                                               
[RESOLU] dans les posts qui le sont, merci
(Et si vous y arrivez tout seul, indiquez aussi la solution, remerci)

Hors ligne

#4 Le 22/11/2007, à 11:22

maskott

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

c'est bon ça marche, j'ai rajouté des "" autour de la variable


Backups are for wimps. Real men upload their work to an ftp server and have everybody mirror it. - Linus Torvalds
                                                                               
[RESOLU] dans les posts qui le sont, merci
(Et si vous y arrivez tout seul, indiquez aussi la solution, remerci)

Hors ligne

#5 Le 22/11/2007, à 12:59

Takahani

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

merci bien !


                         
http://simon-in-china.over-blog.com

"Me voici professeur Thibault, qu'avez vous découvert ?"

Hors ligne

#6 Le 22/11/2007, à 13:03

Daëavelwyn

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

un petit resolu dans le titre du post  svp ^^


La connaissance est le droit de tous, et le devoir de chacun.

Hors ligne

#7 Le 22/11/2007, à 13:22

Alain.g

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

J'aurais plutà´t eu tendance à  faire :

 find . -name 'cover.png' | while read i ; do echo -e "[Desktop Entry]\nIcon=./cover.png" > "${i%/*}/.directory" ; done

On recherche les fichiers cover.png dans tous les sous-répertoires, et pour tous ceux trouvés, on crée dans le même dossier le fichier .directory avec comme contenu :

[Desktop Entry]
Icon=./cover.png

Le . après find représente le dossier courant, mais on peut mettre find /home/truc/dossier
ça peut se lancer directement depuis la console, pas besoin d'en faire un fichier script.

Dernière modification par Alain.g (Le 22/11/2007, à 13:25)


Xubuntu Karmic !

Hors ligne

#8 Le 22/11/2007, à 13:24

Takahani

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

Merci, mais :
Finalement après plusieurs test, pas encore résolu. En fait le script ne descends que dan une hierarchie de sous repertoire. Or ça ressemble plus à  quelque chose du type :
Musique\Albums\- A -\Aphex Twin\1995 - Classics\
Musique\Albums\- B -\Blanche\2000 - Noir

Dans l'idéal, il faudrait que le script descende tout seul jusqu'en bas, et ensuite copie le fichier. Le top serait de détecter les répertoire qui commence par des chiffres, qui correspondent réellement au albums (la date en premier)

Si c'est trop compliqué ... bah ca doit pas être si complqiué t'as répondu super vite ! Merci en tout cas !


                         
http://simon-in-china.over-blog.com

"Me voici professeur Thibault, qu'avez vous découvert ?"

Hors ligne

#9 Le 22/11/2007, à 13:26

Alain.g

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

Nos messages se sont croisés, regarde au dessus wink


Xubuntu Karmic !

Hors ligne

#10 Le 22/11/2007, à 13:29

Takahani

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

trop la classe, c'est fort bash !
Il ne me reste plus qu'a faire un script qui convertit les quelques Folder.jpg qui trainent en cover.png, et ca devrait rouler. avec Image Magick ca devrait ressembler à  :

find . -name 'Folder.jpg' -exec convert "{}" "cover.png" \;

Ca marche ce truc ?

Dernière modification par Takahani (Le 22/11/2007, à 13:31)


                         
http://simon-in-china.over-blog.com

"Me voici professeur Thibault, qu'avez vous découvert ?"

Hors ligne

#11 Le 22/11/2007, à 13:32

Takahani

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

Mince ca me copie direct en dessous le répertoire le fichier cover.png


                         
http://simon-in-china.over-blog.com

"Me voici professeur Thibault, qu'avez vous découvert ?"

Hors ligne

#12 Le 22/11/2007, à 13:34

Takahani

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

kkun à  une idée ?


                         
http://simon-in-china.over-blog.com

"Me voici professeur Thibault, qu'avez vous découvert ?"

Hors ligne

#13 Le 22/11/2007, à 13:38

Takahani

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

finalement ça fonctionne :

find . -name 'Folder.jpg' | while read i ; do convert "${i%/*}/Folder.jpg" "${i%/*}/cover.png" ; done

                         
http://simon-in-china.over-blog.com

"Me voici professeur Thibault, qu'avez vous découvert ?"

Hors ligne

#14 Le 22/11/2007, à 13:40

Alain.g

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

plutà´t comme ceci :

find . -name 'Folder.jpg' | while read i ; do convert "$i" "${i%Folder.jpg}cover.png" ; done

et si tu veux supprimer en même temps le fichier Folder.jpg

find . -name 'Folder.jpg' | while read i ; do convert "$i" "${i%Folder.jpg}cover.png" ; rm "$i" ; done

Edit : j'ai posté avant de voir ton précédent message. Oui ça fonctionne, par contre tu n'es pas obligé de mettre "${i%/*}/Folder.jpg", tu peux juste mettre "$i", ça reviendra au même wink

Dernière modification par Alain.g (Le 22/11/2007, à 13:42)


Xubuntu Karmic !

Hors ligne

#15 Le 22/11/2007, à 13:43

Takahani

Re : [résolu] Script bash : copie d'un fichier dans tous les sous-rép ..

Formidable, j'étais en train de supprimer à la main ...
Merci bien, cette fois ci vraiment résolu
Bonne journée
Simon


                         
http://simon-in-china.over-blog.com

"Me voici professeur Thibault, qu'avez vous découvert ?"

Hors ligne