Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/09/2007, 23h02   #1
Membre éprouvé
 
Homme Marwan Rabbaa
Technophile Web
Inscription : mai 2007
Messages : 930
Détails du profil
Informations personnelles :
Nom : Homme Marwan Rabbaa

Informations professionnelles :
Activité : Technophile Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2007
Messages : 930
Points : 412
Points : 412
Envoyer un message via MSN à sliderman Envoyer un message via Yahoo à sliderman
Par défaut [Bash] Boucle for recursive

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 ?
sliderman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 23h11   #2
Membre émérite
 
Avatar de cubitus91
 
Homme
Consultant informatique
Inscription : mai 2004
Messages : 726
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2004
Messages : 726
Points : 900
Points : 900
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 !
cubitus91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 23h35   #3
Membre éprouvé
 
Homme Marwan Rabbaa
Technophile Web
Inscription : mai 2007
Messages : 930
Détails du profil
Informations personnelles :
Nom : Homme Marwan Rabbaa

Informations professionnelles :
Activité : Technophile Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2007
Messages : 930
Points : 412
Points : 412
Envoyer un message via MSN à sliderman Envoyer un message via Yahoo à sliderman
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)
sliderman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 06h21   #4
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 776
Points : 7 776
Code :
find /iso -type f -name "*.iso" -exec commande {} \;
la commande find gere la recursivité dans les arborescence pour appliquer sur tout fichier trouvé la commande passée en parametre à l'option -exec
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 07h45   #5
Membre éprouvé
 
Homme Marwan Rabbaa
Technophile Web
Inscription : mai 2007
Messages : 930
Détails du profil
Informations personnelles :
Nom : Homme Marwan Rabbaa

Informations professionnelles :
Activité : Technophile Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2007
Messages : 930
Points : 412
Points : 412
Envoyer un message via MSN à sliderman Envoyer un message via Yahoo à sliderman
je fait cela
Code :
find /Users/slide/repo/sysimage/iso/ -type f -name "*.iso" -exec md5 >> /Users/slide/repo/sysimage/iso/MD5SUM {} \ ;
qui utilse la commande md5 pour calculer la somme de contrôle MD5 et les >> pour la mettre dans un fichier

mais erreures

[CODE]find: -exec: no terminating ";" [\CODE]

pourquoi mystère


entout cas merci pour le tuyau
sliderman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 12h55   #6
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 497
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 497
Points : 9 677
Points : 9 677
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
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 13h53   #7
Membre éprouvé
 
Homme Marwan Rabbaa
Technophile Web
Inscription : mai 2007
Messages : 930
Détails du profil
Informations personnelles :
Nom : Homme Marwan Rabbaa

Informations professionnelles :
Activité : Technophile Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2007
Messages : 930
Points : 412
Points : 412
Envoyer un message via MSN à sliderman Envoyer un message via Yahoo à sliderman
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 "{}"
sliderman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 14h13   #8
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 497
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 497
Points : 9 677
Points : 9 677
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
Si cela reproduit le fichier, est-ce que tu peux nous montrer les informations de ce ficher (ls -l) ?
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h32.


 
 
 
 
Partenaires

Hébergement Web