#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
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
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