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

Linux Discussion :

récupérer nom d'un dossier


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 107
    Points : 65
    Points
    65
    Par défaut récupérer nom d'un dossier
    Bonjour

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    #!/bin/sh
     
    # je me place sur le dossier à parcourir :
    cd "/mon/chemin/a/parcourir/dossierDeDepart/"
     
    # j'affiche son contenu (uniquement les dossiers) :
    liste=`ls`
    echo "$liste"
    # ce qui renvoie :
    sousDossier
     
    # ensuite je me place sur le dossier que je viens de trouver :
    cd "./sousDossier"
     
    # pour recuperer le contenu de celui ci :
    liste2=`ls`
    echo "$liste2"
    # ce qui renvoie :
    sousSousDossier
     
    exit 0;
    Jusque là pas de soushi.

    Mais dans ce cas-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    # je me place sur le dossier à parcourir :
    cd "/mon/chemin/a/parcourir/dossierDeDepart/"
     
    # j'affiche son contenu (uniquement les dossiers) :
    liste=`ls`
    echo "$liste"
    # ce qui renvoie PLUSIEURS résultats :
    sousDossier sousDossier1 sousDossier2
    Je cherche à récupérer le nom du dossier se trouvant au second niveau en dessous de "dossierDeDepart", soit "sousSousDossier"…

    Pas de probleme quand il n'y a qu'un résultat dans le premier niveau, mais comment récupérer le dossier du seconde niveau pour chaque premier niveau trouvé ?

    Pour illustrer voici un "schéma" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    /mon/chemin/a/parcourir/dossierDeDepart/        # NIVEAU 0
            |__ sousDossier                         # NIVEAU 1
                    |__ sousSousDossierX            # NIVEAU 2
            |__ sousDossier1
                    |__ sousSousDossierY
            |__ sousDossier2
                    |__sousSousDossierZ

    EDIT

    J'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find "." -maxdepth 2 -type d
    Et ça me renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    .
    ./sousDossier
    ./sousDossier/sousSousDossierX
    ./sousDossier1
    ./sousDossier1/sousSousDossierY
    Cordialement
    Ginger

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 595
    Points : 19 480
    Points
    19 480
    Par défaut
    Bonjour,

    il faut vraiment perdre cette habitude d'utiliser ls dans les scripts
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/sh
     
    cd "/mon/chemin/a/parcourir/dossierDeDepart/"
    for i in *; do if test -d "$i"; then for f in "$i"/*; do echo "$f"; done; break; fi; done
    c'est un peu brut, on pourrait utiliser une fonction récursive intégrant un compteur au lieu de répéter des boucles for identiques



    edit : et en ajoutant -mindepth ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 107
    Points : 65
    Points
    65
    Par défaut
    C'est parfait avec mindepth

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cd /mon/chemin/a/parcourir/dossierDeDepart/
    find -mindepth 2 -maxdepth 2 -type d
    Cordialement
    Ginger

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récupérer nom de champs et type de champs
    Par jexl dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/03/2006, 14h49
  2. Réponses: 12
    Dernier message: 02/03/2006, 15h13
  3. [ADO.Net][C# 2.0]Comment récupérer nom colonne PrimaryKey?
    Par superbobo dans le forum Accès aux données
    Réponses: 1
    Dernier message: 18/01/2006, 18h34
  4. obtenir le nom du dernier dossier dans un chemin
    Par Mitaka dans le forum Langage
    Réponses: 16
    Dernier message: 15/12/2005, 18h05
  5. [ActionEvent] Récupérer nom du composant émetteur
    Par mouloude dans le forum Composants
    Réponses: 4
    Dernier message: 29/10/2004, 18h19

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