15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
02.09.2025

Comment lister les répertoires dans Linux : Un guide complet pour les débutants et les administrateurs système

Travailler sous Linux ressemble souvent à naviguer dans une vaste bibliothèque. Au lieu d’étagères, vous avez des répertoires (dossiers), et au lieu de livres, vous avez des fichiers. Que vous soyez un administrateur système chevronné, un développeur ou un curieux débutant qui commence tout juste, maîtriser les principes fondamentaux de la navigation du système de fichiers est indispensable. L’une des compétences fondamentales les plus critiques est de savoir comment lister les répertoires efficacement et avec précision.

Ce guide vous présente toutes les méthodes pratiques pour lister les répertoires sous Linux, explique les forces et les limitations de chaque approche, et vous montre exactement quand utiliser quel outil — y compris dans les scripts et les environnements de serveurs de production.

Pourquoi lister les répertoires est important

Sur un ordinateur personnel, vous pourriez occasionnellement parcourir votre dossier « Documents » ou « Téléchargements » via une interface graphique. Sur un serveur Linux, cependant, les répertoires sont au cœur de presque chaque tâche administrative que vous effectuerez :

  • Administration système : Auditez rapidement ce qui se trouve dans /etc/, /var/log/ ou /usr/local/bin/.
  • Hébergement web : Localisez et gérez les dossiers de projets sous /var/www/ ou /home/.
  • Développement logiciel : Identifiez les répertoires de contrôle de version et d’environnement tels que .git/ ou .venv/.
  • Audit de sécurité : Confirmez exactement ce qui est installé, configuré et exécuté sur le système.
  • Automatisation et scripts : Énumérez les répertoires de manière fiable pour une utilisation dans les scripts shell et les tâches cron.

Si vous ne pouvez pas lister les répertoires efficacement, vous vous sentirez toujours désorienté — surtout dans un environnement VPS Hosting distant où il n’y a pas de gestionnaire de fichiers graphique sur lequel vous appuyer.

Méthode 1 : La commande ls — Rapide et simple

La commande ls est l’outil par défaut pour afficher le contenu d’un répertoire. C’est la première commande que la plupart des utilisateurs Linux apprennent, et pour une bonne raison : elle est rapide, lisible par l’homme et disponible sur tous les systèmes de type Unix.

Utilisation basique

ls

Cela liste tous les fichiers et répertoires non cachés du répertoire de travail actuel.

Lister uniquement les répertoires

ls -d */

Voici ce que chaque partie fait :

  • -d — Indique à ls de ne pas descendre dans les sous-répertoires, mais de lister les entrées du répertoire lui-même.
  • */ — Un motif glob shell qui correspond à tous les répertoires (et aux liens symboliques vers les répertoires) du dossier actuel.

Lister les répertoires avec des informations détaillées

ls -ld */

L’ajout de -l vous donne un format de liste longue qui inclut :

  • Permissions de fichier
  • Nombre de liens physiques
  • Propriétaire et groupe
  • Taille du fichier
  • Horodatage de la dernière modification

Exemple de sortie :

drwxr-xr-x 3 root root 4096 Jun 10 14:22 backups/
drwxr-xr-x 5 www-data www-data 4096 Jun 12 09:15 html/
drwxr-xr-x 2 deploy deploy 4096 Jun 11 18:03 logs/

Limitation : les répertoires cachés sont exclus

Le glob */ ne correspond pas aux répertoires cachés — ceux dont les noms commencent par un point (.), tels que .git/, .ssh/ ou .config/. C’est une mise en garde importante, surtout dans les environnements sensibles à la sécurité.

Quand utiliser ls -d */ : Vérifications rapides et interactives où vous n’avez besoin que de répertoires visibles et ne nécessitez pas de fiabilité de script.

Méthode 2 : La commande find — Puissante et fiable

La commande find est le choix du professionnel pour énumérer les répertoires. Contrairement à ls, elle est conçue pour une utilisation programmatique, supporte la traversée récursive, inclut les répertoires cachés par défaut et se comporte de manière cohérente sur les différentes distributions Linux et les paramètres régionaux.

Lister tous les répertoires récursivement

find . -type d
  • . — Commencez à partir du répertoire actuel.
  • -type d — Correspond uniquement aux entrées de répertoire (pas aux fichiers, liens symboliques ou autres types).

Cela listera récursivement tous les répertoires à chaque niveau de profondeur sous votre emplacement actuel.

Lister uniquement les répertoires de niveau supérieur (méthode portable)

find . -mindepth 1 -maxdepth 1 -type d
  • -mindepth 1 — Exclut le répertoire actuel lui-même (.) des résultats.
  • -maxdepth 1 — Empêche la récursion au-delà des enfants immédiats.

C’est le moyen le plus portable et fiable de lister uniquement les sous-répertoires directs du dossier actuel, et cela fonctionne de manière identique sur les systèmes GNU/Linux, macOS et BSD.

Alternative pour les systèmes GNU/Linux

Sur la plupart des distributions Linux modernes — y compris celles exécutées sur Serveurs Dédiés — vous pouvez également utiliser :

find . -maxdepth 1 -type d

Notez que cela inclura . lui-même dans la sortie. Utilisez -mindepth 1 aux côtés de -maxdepth 1 pour l’exclure proprement.

Inclure les répertoires cachés

Parce que find ne s’appuie pas sur les globs shell, il inclut automatiquement les répertoires cachés :

find . -mindepth 1 -maxdepth 1 -type d

Cela affichera .git/, .ssh/, .config/ et tout autre répertoire préfixé par un point aux côtés des répertoires visibles.

Utiliser find dans les scripts

find est l’outil correct pour les scripts shell car :

  • Il gère les noms de fichiers avec des espaces et des caractères spéciaux en toute sécurité.
  • Il n’est pas affecté par les paramètres régionaux ou les configurations de couleur du terminal.
  • Il produit une sortie cohérente et analysable.

Exemple : Boucle sur tous les répertoires de niveau supérieur

find . -mindepth 1 -maxdepth 1 -type d | while read -r dir; do
    echo "Processing: $dir"
done

Quand utiliser find : Chaque fois que vous avez besoin de répertoires cachés inclus, de résultats récursifs ou d’une sortie fiable pour les scripts et l’automatisation.

Méthode 3 : La commande tree — Cartes visuelles des répertoires

La commande tree affiche une carte hiérarchique visuelle de votre structure de répertoire. Elle n’est pas installée par défaut sur toutes les distributions, mais elle est extrêmement utile pour la documentation, l’intégration et la compréhension des mises en page de projets complexes.

Installer tree

Debian/Ubuntu :

sudo apt install tree

CentOS/RHEL/AlmaLinux :

sudo yum install tree

Lister uniquement les répertoires (pas de fichiers)

tree -d

Limiter la profondeur pour éviter une sortie accablante

tree -d -L 2
  • -d — Affiche uniquement les répertoires.
  • -L 2 — Limite l’affichage à 2 niveaux de profondeur.

Exemple de sortie :

.
├── backups
│   └── daily
├── html
│   ├── assets
│   └── uploads
└── logs

Inclure les répertoires cachés

tree -d -a

Quand utiliser tree : Visualiser les structures de projets, rédiger de la documentation ou explorer la disposition d’un serveur inconnu pour la première fois.

Méthode 4 : Pourquoi vous devriez éviter ls -l | grep "^d"

Vous rencontrerez occasionnellement ce motif suggéré en ligne :

ls -l | grep "^d"

L’idée est de filtrer la sortie de liste longue de ls pour afficher uniquement les lignes commençant par d — ce qui indique un répertoire. Bien que cela semble astucieux, c’est fondamentalement fragile et devrait être évité dans tout contexte sérieux :

ProblèmeExplication
Sensibilité aux paramètres régionauxCertains paramètres régionaux ou configurations de terminal modifient le format de sortie de ls -l, cassant le motif grep.
Codes de couleurSi ls génère des codes d’échappement ANSI de couleur, le motif ^d peut ne pas correspondre.
Répertoires cachésNon affichés, tout comme avec ls -d */.
Liens symboliquesLes liens symboliques pointant vers des répertoires s’affichent comme l, pas d, ils sont donc silencieusement exclus.
Fiabilité des scriptsL’analyse de la sortie de ls dans les scripts est explicitement déconseillée dans les meilleures pratiques de script shell.

Utilisez find à la place. Elle est conçue à cet effet et évite tous les pièges ci-dessus.

Référence rapide : Choisir la bonne méthode

ObjectifMeilleure commande
Vérification interactive rapide (répertoires visibles uniquement)ls -d */
Liste détaillée avec permissionsls -ld */
Répertoires de niveau supérieur incluant les répertoires cachésfind . -mindepth 1 -maxdepth 1 -type d
Tous les répertoires récursivementfind . -type d
Structure d’arbre visuelletree -d
Utilisation dans un script shellfind . -mindepth 1 -maxdepth 1 -type d

Meilleures pratiques pour les environnements de serveurs de production

Lorsque vous travaillez sur un serveur en direct — qu’il s’agisse d’un compte Hébergement Web Partagé ou d’un VPS entièrement géré — gardez ces principes à l’esprit :

  1. Vérifiez toujours les répertoires cachés lors des audits de sécurité. Les répertoires comme .ssh/, .git/, .env/ et .config/ contiennent souvent des identifiants sensibles, des clés et des fichiers de configuration. Utilisez find avec -mindepth 1 pour vous assurer qu’ils apparaissent dans votre sortie.
  1. Utilisez find dans tous les scripts, jamais ls. L’analyse de la sortie de ls est un anti-motif bien connu dans les scripts shell. La commande find est déterministe, indépendante des paramètres régionaux et gère les cas limites avec élégance.
  1. Combinez find avec -exec pour les opérations en masse. Par exemple, pour lister les tailles de répertoire :
   find . -mindepth 1 -maxdepth 1 -type d -exec du -sh {} ;
  1. Utilisez ###
15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer