IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Lister les fichiers dans plusieurs répertoires


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Par défaut Lister les fichiers dans plusieurs répertoires
    bonjour,

    je suis novice en shell et j'aurais besoin d'aide pour créer un scripts qui va contrôler la présence de fichiers dans plusieurs répertoires.
    merci par avance de votre aide.
    voila:
    j'ai un répertoire racine:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /volumes/sauvegardes/obm
    dans cette racine j'ai plusieurs dossiers
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /volumes/sauvegardes/obm/idealautos
    pour chaque dossier un sous dossier "quotidienne" identique à tous les dossiers ou se trouve les fichiers que je dois contrôler
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /volumes/sauvegardes/obm/idealautos/quotidienne
    je dois donc contrôler la présence des fichiers dans tous les repertaoires qui sont au niveau XXXXXX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /volumes/sauvegardes/obm/XXXXXX/quotidienne
    comment dois écrire le scripts?
    merci

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 851
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par bibiho Voir le message
    je suis novice en shell et j'aurais besoin d'aide pour créer un scripts
    Non, tu es novice en shell donc tu as besoin de télécharger un tuto et le lire pour n'être plus novice.
    Ensuite tu pourras créer tes propres scripts, qui répondent à un cahier des charges précis parce que là, "je dois contrôler" ça veut à la fois tout et rien dire. Par exemple de quelle façon s'effectue le contrôle? Si le fichier est là le script affiche un truc, fait une action, et s'il n'est pas là???

    Citation Envoyé par bibiho Voir le message
    je dois donc contrôler la présence des fichiers dans tous les repertaoires qui sont au niveau XXXXXX : /volumes/sauvegardes/obm/XXXXXX/quotidienne
    comment dois écrire le scripts?
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for d in /volumes/sauvegardes/obm/*; do
    	test -d "$d/quotidienne" && echo "Le dossier $d/quotidienne existe" || echo "Le dossier $d/quotidienne n'existe pas (ou n'est pas un dossier)"
    done
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Bonjour

    Non, tu es novice en shell donc tu as besoin de télécharger un tuto et le lire pour n'être plus novice.
    Ensuite tu pourras créer tes propres scripts, qui répondent à un cahier des charges précis parce que là, "je dois contrôler" ça veut à la fois tout et rien dire. Par exemple de quelle façon s'effectue le contrôle? Si le fichier est là le script affiche un truc, fait une action, et s'il n'est pas là???


    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for d in /volumes/sauvegardes/obm/*; do
    	test -d "$d/quotidienne" && echo "Le dossier $d/quotidienne existe" || echo "Le dossier $d/quotidienne n'existe pas (ou n'est pas un dossier)"
    done
    En effet, merci pour ta reponse. en fait il faut que je contrôle la présence des fichier en "*carbase.dmp, *newcarbase.dmp, *fairbill.dmp et *.genesys.dmp" et qu'il soit a la date J-1 ou J
    s'il sont présent il me faudrait pour commencer un OK ou un NOK

  4. #4
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Par défaut
    Citation Envoyé par bibiho Voir le message
    En effet, merci pour ta reponse. en fait il faut que je contrôle la présence des fichier en "*carbase.dmp, *newcarbase.dmp, *fairbill.dmp et *.genesys.dmp" et qu'il soit a la date J-1 ou J
    s'il sont présent il me faudrait pour commencer un OK ou un NOK
    il faudrait que j'entre dans tous ces repertoire et contrôler la présence des fichier cité dans un autre sous dossier de chacun d'entre eux "quotidienne"

    Nom : rep.png
Affichages : 472
Taille : 61,6 Ko

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 851
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par bibiho Voir le message
    qu'il soit a la date J-1 ou J
    Ah oui, quand-même !!!

    Je te conseille de partir sur du find car cette commande possède l'option incomparable "-mtime" qui permet de spécifier une date de mise à jour (comptée en jours depuis le jour en cours) et "-mmin" qui fait la même chose mais qui compte en minutes.
    Un truc comme find /volumes/sauvegardes/obm -mindepth 2 -maxdepth 2 -type f -name "*carbase.dmp" -mtime -1 -print devrait te donner un point de départ. Ou peut-être find /volumes/sauvegardes/obm -mindepth 2 -maxdepth 2 -type f -mtime -1 -print te donnera la liste de tous les fichiers ayant moins de 1 jour et de là, checker si "carbase.dmp" et les autres sont dans la liste. Parce que franchement ça a l'air simple tel que tu le formules mais en réalité ça ne l'est pas tellement. Pas dans le sens "comment programmer" mais surtout quoi décider quand tel ou tel cas se produit...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 295
    Par défaut
    Bonjour

    Personnellement, j'aime bien travailler avec des listes (des fichiers textes, donc, ici, une liste). À ta place, je commencerais donc par un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /volumes/sauvegardes/obm -regex ".*/quotidienne/.*"

  7. #7
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Bonjour

    Personnellement, j'aime bien travailler avec des listes (des fichiers textes, donc, ici, une liste). À ta place, je commencerais donc par un truc comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /volumes/sauvegardes/obm -regex ".*/quotidienne/.*"
    je te rmercie mais il faut que je fasse une boucle a partir du repertoire racine et entrée dans chacun des repertoires pour allé controler le repertoire "quotidienne"

  8. #8
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 295
    Par défaut
    Citation Envoyé par bibiho Voir le message
    je te rmercie mais il faut que je fasse une boucle a partir du repertoire racine et entrée dans chacun des repertoires pour allé controler le repertoire "quotidienne"
    NON ! "find" fait la boucle tout seul. T'aurais pu tester.

  9. #9
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Par défaut
    mais comment lister tous les répertoire sous OBM, entré dans chaque sous répertoire et contrôler le contenu du répertoire Quotidienne
    c'(est surtout ça qui me pose problème
    1 - lister les repertoires sous "/volumes2/sauvegardes/obm"
    2 - entrer dans chaque repertoires lister
    3 - controler dans pour chaque repertoire entré, le contenu du repertoire "quotidienne"

  10. #10
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 851
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par bibiho Voir le message
    mais comment lister tous les répertoire sous OBM, entré dans chaque sous répertoire et contrôler le contenu du répertoire Quotidienne
    c'(est surtout ça qui me pose problème
    Mouais. Pourtant je te l'ai écrit !!!
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for d in /volumes/sauvegardes/obm/*; do
    	test -d "$d/quotidienne" && echo "Le dossier $d/quotidienne existe" || echo "Le dossier $d/quotidienne n'existe pas (ou n'est pas un dossier)"
    done
    Comme quoi, le shell ça s'apprend 1) pour pouvoir écrire ses propres scripts et 2) pour pouvoir lire les scripts des autres...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #11
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 295
    Par défaut
    Citation Envoyé par bibiho Voir le message
    mais comment lister tous les répertoire sous OBM, entré dans chaque sous répertoire et contrôler le contenu du répertoire Quotidienne
    c'(est surtout ça qui me pose problème
    1 - lister les repertoires sous "/volumes2/sauvegardes/obm"
    2 - entrer dans chaque repertoires lister
    3 - controler dans pour chaque repertoire entré, le contenu du repertoire "quotidienne"
    En quoi la commande que je t'ai donnée ne fait-elle pas ces 3 choses ?

  12. #12
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Woah ! Je reviens de vacances et je trouve 67 messages sur 4 pages !

    Il me semble que lorsqu'une demande commence par ceci:

    Citation Envoyé par bibiho Voir le message
    je suis novice en shell et j'aurais besoin d'aide pour créer un scripts qui va contrôler la présence de fichiers dans plusieurs répertoires.
    merci par avance de votre aide.
    ...
    comment dois écrire le scripts?
    merci
    il serait probablement judicieux de commencer par demander au PO des spécifications précises et si possible fixes, afin de faciliter et optimiser le boulot de l'équipe de développement.

    Si j'en juge par le résultat, Flodelarab, N_BaH ou Sve@r (dans l'ordre alphabétique) auraient probablement écrit le script en quelques minutes, non ?

  13. #13
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 851
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jack-ft Voir le message
    Si j'en juge par le résultat, Flodelarab, N_BaH ou Sve@r (dans l'ordre alphabétique) auraient probablement écrit le script en quelques minutes, non ?
    Ben de fait, chacun d'entre nous a bel et bien écrit un script qui fait plus ou moins le job (plus ou moins non pas parce que script défaillant mais surtout parce que description de l'environnement originel comportant quelques imprécisions).
    Ne reste que ta part (ce qui, j'en suis certain, ne devrait pas non plus prendre plus de quelques instants)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  14. #14
    Membre actif
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2016
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 65
    Par défaut MERCI!!!
    Monsieurs,

    je tenais a vous remercier infiniment pour votre aide.
    je vais m'atteler maintenant a lire ces fameux cours ou tutaux sur le shell ainsi que AWK

    merci encore

Discussions similaires

  1. Lister les fichiers d'un répertoire dans une feuille Excel
    Par AlainTech dans le forum Contribuez
    Réponses: 7
    Dernier message: 15/02/2025, 17h06
  2. Lister les fichiers d'un répertoire dans une feuille Excel
    Par Kriss63 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/04/2011, 14h54
  3. Lister les fichiers dans un répertoire
    Par lohot dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 30/03/2008, 12h55
  4. lister les fichiers d'un répertoire dans un .BAT
    Par isn44 dans le forum Windows
    Réponses: 7
    Dernier message: 10/10/2007, 10h44
  5. Lister les fichiers de plusieurs sous-répertoire ?
    Par ratbiker dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 25/11/2005, 21h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo