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 "vrais" répertoires de /


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut Lister les "vrais" répertoires de /
    Bonjour,

    Je cherche à lister les vrais répertoires qui sont dans /, c'est à dire tout sauf les points de montage. Si la solution liste aussi les fichiers, ça me va aussi, pas de soucis

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $> df 
    /dev/sda1 .... /
    /dev/sda2 .... /boot
    /dev/sda3 .... /home
    swap      .... /tmp
    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
    $> ls -1 /
    bin
    boot
    dev
    etc
    home
    lib
    lib64
    lost+found
    mnt
    net
    opt
    proc
    root
    sbin
    selinux
    sys
    tmp
    usr
    Ce que je cherche : une commande qui m'affiche tous les répertoires qui ne sont pas en rouge.

    Sachant que find / -xdev -maxdepth 1 -type d ne fonctionne pas, et que je voudrais éviter de faire un bind du point de montage dans un autre répertoire (qui est une solution qui devrait fonctionner).

    Merci de vos idées
    OS cibles : RedHat, Solaris et AIX, donc n'hésitez pas à proposer des solutions ésotériques :-D


    [EDIT]
    C'est l'équivalent de cette commande que je cherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ls -1 / | grep -vw "$(df | tail +2 | awk '{ print $NF }' | grep -v "^\/$" | cut -b 2-)"
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  2. #2
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 161
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 161
    Par défaut
    Salut,

    Citation Envoyé par gangsoleil Voir le message
    C'est l'équivalent de cette commande que je cherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls -1 / | grep -vw "$(df | tail +2 | awk '{ print $NF }' | grep -v "^\/$" | cut -b 2-)"
    Hé ben voilà !
    Plus qu'à te créer un alias pour éviter de tout retaper à chaque fois, et tu peux cliquer sur

    Et le jour où tu passes sous Debian, tu remplaces ton tail +2 par un tail -n +2 et hop !

    En tout cas, ça fonctionne très bien dans ma distro

  3. #3
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    Citation Envoyé par gangsoleil Voir le message
    C'est l'équivalent de cette commande que je cherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls -1 / | grep -vw "$(df | tail +2 | awk '{ print $NF }' | grep -v "^\/$" | cut -b 2-)"
    est-ce qu'un truc comme ça fait tes affaires :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk 'NR == FNR && $3 != "/" && gsub(/\//,"/",$3) < 2 {t[$3]=$3} NR != FNR && !($0 in t) {print | "sort"}' <(mount) <(find / -maxdepth 1 -type d)
    edit: existe aussi à base de ls :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk 'NR == FNR && $3 != "/" && gsub(/\//,"/",$3) < 2 {t[substr($3,2,150)]=1;} NR != FNR && !($0 in t) {print | "sort"}' <(mount) <(ls -1 /)

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 376
    Par défaut
    Bonjour,
    Voici une solution sous perl (à peaufiner):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -e '@FF = glob($ARGV[0]."*") ; $yy = (stat($ARGV[0]))[0] ;foreach $i (@FF) {if ( -d $i) { $xx = (stat($i))[0];printf("%s\n",$i) if ($xx == $yy)}}' /

  5. #5
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    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 854
    Par défaut
    Une idée avec la commande stat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    stat  --file-system -c  '%d  %n'  $( find /  -maxdepth 1 -type d    )  |  awk 'NR == 1 { MP = $1  } $1 == MP { print $2  }'

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 859
    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 859
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par becket Voir le message
    Une idée avec la commande stat

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    stat  --file-system -c  '%d  %n'  $( find /  -maxdepth 1 -type d  ) |...
    Joli
    Mais quel dommage d'englober le find dans un sous-processus...
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    find /  -maxdepth 1 -type d -exec stat --file-system -c "%d %n" {} + | ...
    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]

  7. #7
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 376
    Par défaut
    Voici une autre version (totalement exotique), sous bash :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stat -c "%d %n" -- $(compgen -d /)| awk -vX=$(stat / -c "%d") '$1 == X ? $0=$2 : 0'
    Fonctionne sous Linux.
    Et sous Solaris et AIX si bash et l'outil stat est installé.

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. [C++/Unix] Lister les fichiers d'un répertoire
    Par bouazza92 dans le forum Linux
    Réponses: 5
    Dernier message: 10/12/2013, 22h07
  3. [CF][PPC/C#] Comment lister les fichiers d'un répertoire ?
    Par dady dans le forum Windows Mobile
    Réponses: 18
    Dernier message: 20/05/2005, 14h35

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