|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() |
Bonjour,
Je voudrais écrire un script bash qui me calcule les md5 des images iso dans un dossier précis. Le problème est que je n'ai aucune idée du nombre de dossier qui se trouve entre les fichiers iso et le dossier. Un petit shéma (un exemple) : iso | |---- toto | |-------tata | |--------- fichier.iso | |--------- autre_fichier.iso ce que je voudrais c'est calculer les md5 de fichier.iso et autre_fichier.iso au début j'ai pensé à un for mais la boucle for ne permet pas de traverser un nombre indéfini de dossier (enfin je pense) comment pourrais je faire ? |
|
00
|
|
|
#2 |
|
Membre émérite
![]() Consultant informatique Inscription : mai 2004 Messages : 726 ![]() |
Bonsoir,
Regarde si tu peux faire de la récursivité. En gros ca consiste, à un appelle de la fonction qui appelle la meme fonction tant qu'il y a un sous dossier. Cdt
__________________
Le tag est bien utile, alors pensez y !
|
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() |
ou la ce que tu me dis c'est bien plus compliqué, je voulais juste taper quelques lignes de codes
mais non je vais devoir me taper quelques fonctions (je le ferais donc en perl) |
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
Code :
find /iso -type f -name "*.iso" -exec commande {} \; |
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() |
je fait cela
Code :
find /Users/slide/repo/sysimage/iso/ -type f -name "*.iso" -exec md5 >> /Users/slide/repo/sysimage/iso/MD5SUM {} \ ; mais erreures [CODE]find: -exec: no terminating ";" [\CODE] pourquoi mystère entout cas merci pour le tuyau |
|
00
|
|
|
#6 |
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 5 497 ![]() |
Bonjour,
Tu as un petit soucis dans la syntaxe du find : après la commande à exécuter, il faut préciser "{}" pour lui dire où placer les arguments à exéctuer, puis finir par \; pour lui dire que c'est la fin de la commande Essayes avec la commande suivante : Code :
find /Users/slide/repo/sysimage/iso/ -type f -name "*.iso" -exec md5 {} \;>> /Users/slide/repo/sysimage/iso/MD5SUM |
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() |
cela me créer de fichier
un dont le nom est "{}" (je pense que j'ai malplacé les accollades avec l'aide de gangsoleil) l'autre qui est le fichier MD5SUM voulu (cela fonctionne) au pire à la fin je peu faire un rm -fr du fichier "{}" |
|
00
|
|
|
#8 |
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 5 497 ![]() |
Etrange comportement que tu décris là.... J'ai beau faire des tests dans tous les sens, je n'ai jamais créé de fichier {}...
Est-ce que tu peux essayer de supprimer ce fichier "{}" , et de recommencer ton test avec la ligne suivante : Code :
find /Users/slide/repo/sysimage/iso/ -type f -name "*.iso" -exec md5 \{} \; >> /Users/slide/repo/sysimage/iso/MD5SUM |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com