É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
Sections
Linux

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 simple curieux qui débute, maîtriser les 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 chaque méthode pratique 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 environnements de scripting et de serveurs de production.

Pourquoi l’énumération des répertoires est importante

Sur un ordinateur personnel, vous pouvez 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 projet 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 en cours d’exécution sur le système.
  • Automatisation et scripts : Énumérez de manière fiable les répertoires pour utilisation dans les scripts shell et les tâches cron.

Si vous ne pouvez pas énumérer 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 de base

ls

Cela liste tous les fichiers et répertoires non cachés dans le 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 elles-mêmes.
  • */ — Un motif de glob shell qui correspond à tous les répertoires (et aux liens symboliques vers des répertoires) dans le 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 motif */ ne correspond pas aux répertoires cachés — ceux dont les noms commencent par un point (.), comme .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 différentes distributions Linux et locales.

Lister tous les répertoires de manière récursive

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

Cela listera de manière récursive 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 courant lui-même (.) des résultats.
  • -maxdepth 1 — Empêche la récursion au-delà des enfants immédiats.

C’est la manière la plus portable et fiable de lister uniquement les sous-répertoires directs du dossier courant, et elle 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 des 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 repose pas sur les globs du 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 de manière sécurisée.
  • Il n’est pas affecté par les paramètres de locale ou les configurations de couleur du terminal.
  • Il produit une sortie cohérente et analysable.

Exemple : Boucler 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 d’inclure des répertoires cachés, des résultats récursifs, ou 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 visuelle et hiérarchique de votre structure de répertoires. 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 (sans fichiers)

tree -d

Limiter la profondeur pour éviter une sortie accablante

tree -d -L 2
  • -d — Afficher uniquement les répertoires.
  • -L 2 — Limiter 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 une mise en page de serveur inconnue pour la première fois.

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

Vous rencontrerez occasionnellement ce modèle 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 modèle grep.
Codes de couleurSi ls génère des codes d’échappement ANSI de couleur, le modèle ^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. C’est un outil conçu spécifiquement pour cette tâche 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 */
Listing détaillé avec permissionsls -ld */
Répertoires de niveau supérieur incluant les fichiers cachésfind . -mindepth 1 -maxdepth 1 -type d
Tous les répertoires récursivementfind . -type d
Structure d’arborescence visuelletree -d
Utilisation dans un script shellfind . -mindepth 1 -maxdepth 1 -type d

Meilleures pratiques pour les environnements de serveur de production

Lorsque vous travaillez sur un serveur en direct — qu’il s’agisse d’un compte Shared Web Hosting 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 ls est un anti-modèle bien connu dans les scripts shell. La commande find est déterministe, indépendante de la locale 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épertoires :
   find . -mindepth 1 -maxdepth 1 -type d -exec du -sh {} ;
  1. Utilisez tree -d -L 2 lors de l’intégration. Lorsque vous vous connectez d’abord en SSH à un serveur inconnu, un rapide tree -d -L 2 depuis /var/www/ ou /home/ vous donne un aperçu structurel instantané.
  1. Restreignez les autorisations avec soin. Savoir quels répertoires existent n’est qu’une partie du tableau. Auditez régulièrement les autorisations des répertoires avec ls -ld */ pour détecter les répertoires accessibles en écriture mal configurés.

Exemple pratique : Audit d’un répertoire de serveur web

Supposons que vous venez de déployer une nouvelle application sur un VPS Linux. Voici un flux de travail pratique combinant les commandes couvertes dans ce guide :

# Navigate to the web root
cd /var/www/

# Quick visual check of top-level directories
ls -ld */

# Full audit including hidden directories
find . -mindepth 1 -maxdepth 1 -type d

# Visual map of the project structure (2 levels deep)
tree -d -L 2

# Check disk usage per directory
find . -mindepth 1 -maxdepth 1 -type d -exec du -sh {} ;

Ce flux de travail prend moins d’une minute et vous donne une vue complète de la disposition des répertoires de votre serveur web, des permissions et de la consommation disque — des connaissances essentielles pour tout administrateur gérant un VPS avec cPanel ou une pile Linux personnalisée.

Conclusion

Lister les répertoires est l’une des compétences Linux les plus fondamentales, mais la méthode que vous choisissez a plus d’importance que la plupart des débutants ne le réalisent. Voici un résumé des points clés à retenir :

  • ls -d */ est parfait pour les vérifications rapides et interactives — mais il ignore les répertoires cachés et ne convient pas aux scripts.
  • find . -mindepth 1 -maxdepth 1 -type d est l’étalon-or pour une liste de répertoires fiable, portable et sûre pour les scripts qui inclut les entrées cachées.
  • tree -d est inestimable pour visualiser les structures complexes et les communiquer à d’autres.
  • Évitez ls -l | grep "^d" — c’est fragile, dépendant de la locale, et n’a aucun avantage par rapport à find.

Que vous gériez des configurations dans un environnement Dedicated Servers, déployiez des applications web ou exploriez simplement une nouvelle machine Linux pour la première fois, maîtriser ces commandes vous fera gagner du temps, éviter des erreurs coûteuses et vous donnera la confiance pour naviguer dans n’importe quel système de fichiers avec précision.

La ligne de commande n’est pas une barrière — c’est un superpouvoir. Et cela commence par savoir exactement où vous êtes et ce qui vous entoure.