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 :

Hauteur d'une arborescence


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club Avatar de Liamm
    Femme Profil pro
    Enseignant
    Inscrit en
    janvier 2019
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : janvier 2019
    Messages : 136
    Points : 67
    Points
    67
    Par défaut Hauteur d'une arborescence
    Bonjour,

    Comment par le bash shell connaitre la hauteur de l'arborescence d'un disque ?
    autrement dit :
    Comment déterminer le nombre de niveaux dans la hiérarchie des répertoires ?

    Je connais la commande tree, mais celle ci ne donne pas directement la hauteur !

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    5 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 5 209
    Points : 13 145
    Points
    13 145
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ find ~ 2>/dev/null | awk -F '/' '{print NF-1}' | sort -n | tail -n 1
    18
    $ find ~ 2>/dev/null | awk -F '/' '{print NF-1,$0;}' | sort -n | tail -n 1
    18 /home/flodelarab/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla.java
    $ find / 2>/dev/null | awk -F '/' '{print NF-1,$0;}' | sort -n | tail -n 1
    18 /home/flodelarab/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla/blablabla.java
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    février 2008
    Messages
    7 470
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 7 470
    Points : 19 172
    Points
    19 172
    Par défaut
    Bonjour,

    ton propos est peu précis.

    sur Linux, on ne voit pas les disques; on ne les voit pas directement, voire pas du tout, puisque seules sont montées les partitions sur des sous-répertoires du système de fichiers.
    on peut très bien monter une partition d'un disque sur un sous-répertoire d'une partition d'un autre disque...

    <petit point lexical>
    si on parle bien d'arborescence depuis une racine, je parlerais plutôt de profondeur des sous-répertoires.
    il n'est pas dit qu'arborescence ne désigne que la partie aérienne d'un arbre (ça ne désigne pas particulièrement les branches), mais uniquement que ça ressemble à un arbre, ce qui est le cas du système racinaire.
    </petit point lexical>

    hormis le find indispensable , la solution de Flodelarab est parfaitement adaptable 100% en awk.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre du Club Avatar de Liamm
    Femme Profil pro
    Enseignant
    Inscrit en
    janvier 2019
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : janvier 2019
    Messages : 136
    Points : 67
    Points
    67
    Par défaut
    Merci Flodelarab, c'est exactement ce que je cherchais !

    J'ai regardé la première option (qui marche bien) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ find ~ 2>/dev/null | awk -F '/' '{print NF-1}' | sort -n | tail -n 1
    Voici quelques commentaires, pour voir si j'ai bien compris :
    com1:
    2>/dev/null : on n'écrit pas la sortie (on la propulse dans le trou noir)

    com2:
    -F '/' : on prend comme caractère séparateur de champ le slash /
    NF-1 : car par exemple la ligne /home/Document comporte 3 champs (rien (avant le premier slash); home; Document) mais la hauteur est de 3 - 1 = 2

    Je regarderai les autres possibilités plus tard.

    Encore merci.

    Questions subsidiaires:
    Connais tu un peu le powershell et si oui comment s'écrirait la commande ?
    sinon, où dans le forum poster ce même post pour powershell ?

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    5 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 5 209
    Points : 13 145
    Points
    13 145
    Par défaut
    com1
    Pas exactement. Le "2" signifie "canal d'erreurs". La sortie, c'est le canal 1. Les erreurs sont nombreuses avec find pour des questions de droits. Donc, on s'en débarrasse.

    com2
    D'accord.

    Tu devrais faire la version proposée par N_BaH, tout en find+awk. C'est un bon exercice. Et je rajoute : sans tableau, ni tri.

    Pour le powershell, c'est écrit dessus (clic) :

    Forum Scripts/Batch

    Forum d'entraide sur la programmation de scripts Batch et Powershell sous Windows.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

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

Discussions similaires

  1. Copier certains fichiers d'une arborescence ?
    Par narmataru dans le forum Linux
    Réponses: 4
    Dernier message: 27/04/2004, 12h15
  2. Suppression d'item dans une arborescence
    Par jonzuzu dans le forum MFC
    Réponses: 2
    Dernier message: 24/02/2004, 17h45
  3. Remonter une arborescence
    Par Gwipi dans le forum Requêtes
    Réponses: 4
    Dernier message: 26/11/2003, 18h04
  4. [VB6] parcourir une arborescence de repertoire
    Par pecheur dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 30/04/2003, 17h33
  5. créer une arborescence windows sous forme d'arbre java
    Par chupachoc dans le forum Composants
    Réponses: 3
    Dernier message: 01/10/2002, 16h48

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