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 répertoires contenant un répertoire spécifique


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    janvier 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : janvier 2023
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Lister les répertoires contenant un répertoire spécifique
    Bonjour, je suis pas encore à l'aise avec le scripting shell et j'ai besoin de faire un script shell qui liste les répertoires contenant un répertoire spécifique, merci d'avance pour votre aide.
    Stephane

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    février 2008
    Messages
    7 297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 7 297
    Points : 18 833
    Points
    18 833
    Par défaut
    Bonjour,

    à quel point n'es-tu pas à l'aise ?

    qu'as-tu essayé ?

    tu peux déjà chercher des solutions abordables avec find...
    après, il faut savoir quel format de sortie tu veux.

    edit: il faudrait aussi nous parler de la hiérarchie des répertoires où chercher.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    novembre 2013
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : novembre 2013
    Messages : 562
    Points : 459
    Points
    459
    Par défaut
    Salut,

    comme dit par n_bah, il faudrait plus d'infos.

    Tu as le choix en gros entre find qui est adapté ou des boucles for imbriquées.

    Dans l'attente de plus d'infos et d'exemples.
    Sous Kubuntu 20.04

  4. #4
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    février 2005
    Messages
    2 736
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : février 2005
    Messages : 2 736
    Points : 5 517
    Points
    5 517
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find / -type d  -name "*LEMOTIF*"   2>/dev/null    | xargs -I £  dirname £

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    février 2008
    Messages
    7 297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 7 297
    Points : 18 833
    Points
    18 833
    Par défaut
    pas besoin de xargs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ find "$depart" -type d -name 'nomDuRepertoire' -printf '%h\n' 2>/dev/null
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    février 2008
    Messages
    7 297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 7 297
    Points : 18 833
    Points
    18 833
    Par défaut
    et, non, en bash plus besoin d'imbriquer des boucles avec shopt -s globstar (et nullglob pour ne pas faire une boucle "à vide").
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    janvier 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : janvier 2023
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Plus d'infos sur mon besoin
    Bonjour,

    merci pour vos réponses, je vais être un peu plus précis concernant ma question:
    en gros j'ai une arborescence de ce style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    rep_source
                  rep1
                  rep2
                        rep_spec
                  rep3
                        rep_spec
                  rep4
    Mon script doit pouvoir sortir la liste des répertoires contenant le rep_spec et cette liste doit être un fichier txt avec les noms des répertoires, dans notre exemple, le contenu du fichier txt sera:

    J'espère que je suis plus clair.

    Je débute complètement en scripting shell (je n'ai jamais eu de formation pour l'instant) et je viens de commencer un taf où j'ai entre autre ce script à faire assez rapidement, c'est pour cela que je vous sollicite.
    @ N_BaH, peux tu me détailler ta commande avec find, la variable $depart prendra le nom de chaque répertoire (rep1, rep2, etc ...), que signifie la partie " -printf '%h\n' 2>/dev/null" ?

    Merci d'avance pour votre aide

    Cordialement

  8. #8
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    février 2008
    Messages
    7 297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 7 297
    Points : 18 833
    Points
    18 833
    Par défaut
    - la variable $depart prend comme valeur le nom du répertoire de ... départ !
    - la description de -printf est dans le man de find, et
    - > /dev/null redirige la sortie d'erreur (répertoire non lisible par l'utilisateur...) vers /dev/null (cf. man null)

    NB: ton urgence n'est pas la nôtre (c'est dans la charte du forum).
    nous allons t'aider, pas faire à ta place.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    janvier 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : janvier 2023
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    @N_BaH, merci pour ta réponse.

    Je ne vous demande pas de le faire à ma place, je veux juste des pistes pour m'orienter.
    Je vais donc chercher avec les éléments que tu m'as donné.

    Encore merci à tous pour vos réponses

  10. #10
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    février 2008
    Messages
    7 297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 7 297
    Points : 18 833
    Points
    18 833
    Par défaut
    je viens de commencer un taf
    tu connais l'environnement utilisé ?
    parce que, selon que tu es sur du GNU (Linux) ou sur du POSIX (il existe un sous-forum dédié), certaines commandes ne fonctionnent pas de la même manière, n'ont pas les mêmes options, ou ont les mêmes mais pas pour indiquer la même chose
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    novembre 2013
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : novembre 2013
    Messages : 562
    Points : 459
    Points
    459
    Par défaut
    et, non, en bash plus besoin d'imbriquer des boucles avec shopt -s globstar (et nullglob pour ne pas faire une boucle "à vide").
    Je ne pense jamais à ces options... pourtant bien pratiques...
    Sous Kubuntu 20.04

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    janvier 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : janvier 2023
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    tu connais l'environnement utilisé ?
    parce que, selon que tu es sur du GNU (Linux) ou sur du POSIX (il existe un sous-forum dédié), certaines commandes ne fonctionnent pas de la même manière, n'ont pas les mêmes options, ou ont les mêmes mais pas pour indiquer la même chose

    Il y a des serveurs Linux (DEBIAN) et des serveurs UNIX (AIX)

  13. #13
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    février 2005
    Messages
    2 736
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : février 2005
    Messages : 2 736
    Points : 5 517
    Points
    5 517
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    pas besoin de xargs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ find "$depart" -type d -name 'nomDuRepertoire' -printf '%h\n' 2>/dev/null
    Il n'y a pas qu'une seule recette de tarte aux pommes

  14. #14
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    février 2008
    Messages
    7 297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 7 297
    Points : 18 833
    Points
    18 833
    Par défaut
    Il y a des serveurs Linux (DEBIAN) et des serveurs UNIX (AIX)
    la totale
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  15. #15
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    février 2008
    Messages
    7 297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 7 297
    Points : 18 833
    Points
    18 833
    Par défaut
    Citation Envoyé par becket Voir le message
    Il n'y a pas qu'une seule recette de tarte aux pommes
    soit, mais il y a des recettes meilleures plus délicates, plus respectueuses du produit, que les autres.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  16. #16
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    avril 2008
    Messages
    2 056
    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 056
    Points : 5 719
    Points
    5 719
    Par défaut
    Citation Envoyé par Fonzy31 Voir le message
    Il y a des serveurs Linux (DEBIAN) et des serveurs UNIX (AIX)
    D'après le début d'expérience que j'ai eue avec AIX, c'est plus contraignant que linux.

    Si tu veux exactement le même script dans les 2 environnements, àmha, il vaut mieux commencer avec AIX. Si ça marche avec AIX, ça devrait marcher avec Debian.

    Et si bash n'est pas installé sur AIX et que tu n'as pas le droit de l'y installer, il faudra peut-être le faire avec ksh...

    Ne dit-on pas "qui peut le moins peut le plus" ?

Discussions similaires

  1. récursivité, lister les répertoires en C++
    Par panthere noire dans le forum C++
    Réponses: 5
    Dernier message: 09/04/2009, 02h01
  2. [OpenOffice][Base de données] Lister les répertoires et disques en VB Ooo
    Par Papy Octet dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 24/11/2008, 14h01
  3. lister les répertoires partagés
    Par koKoTis dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 03/12/2007, 19h01
  4. lister les répertoires et sous répertoire
    Par panthere noire dans le forum Linux
    Réponses: 7
    Dernier message: 27/12/2006, 14h29
  5. Lister les répertoires d'un répertoire
    Par Faith's Fall dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/02/2006, 12h01

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