Aller au contenu

Commande ls sous Linux : lister les fichiers et répertoires

Description

La commande ls permet de lister le contenu d’un répertoire sous Linux et Unix, en affichant fichiers, répertoires et métadonnées. C’est généralement la première commande utilisée pour explorer le système de fichiers.


Syntaxe

La syntaxe de base de la commande ls est :

ls [OPTIONS] [FICHIER|RÉPERTOIRE]

  • OPTIONS : modifie le comportement de la commande ou formate la sortie.
  • FICHIER|RÉPERTOIRE : spécifie le chemin d’accès vers un fichier ou un répertoire dont on souhaite afficher le contenu.

Si aucune option ni chemin n’est précisé, ls affiche le contenu du répertoire courant dans un format compact.


Options les plus utilisées

Option Description
-l Affichage détaillé (permissions, propriétaire, taille, date de dernière modification)
-a Inclure les fichiers cachés (commençant par .)
-h Tailles lisibles par un humain (Ko, Mo, Go, …), à utiliser avec -l

Tip

La combinaison la plus courante est ls -lah, qui affiche tout, avec des informations détaillées et lisibles.


Exemples simples

Lister le contenu du répertoire courant

# ls
dossiers  fichiers  file2.txt  lien

Le résultat affiche les noms des fichiers et répertoires par ordre alphabétique, sans métadonnées (permissions, taille, etc.).


Lister le contenu d’un répertoire spécifique (chemin absolu)

# ls /tmp/tuto-linux/ls/

Cette commande liste le contenu du répertoire ls situé dans /tmp/tuto-linux.


Afficher les métadonnées

# ls -l
total 4
drwxr-xr-x. 4 root root 30 Jan  2 19:09 dossiers
drwxr-xr-x. 2 root root 89 Jan  2 19:09 fichiers
-rw-r--r--. 1 root root  5 Jan  2 21:48 file2.txt
lrwxrwxrwx. 1 root root 37 Jan  2 19:09 lien -> /tmp/tuto-linux/ls/fichiers/file1.txt

Exemple de sortie :

-rw-r--r--. 1 root root  5 Jan  2 21:48 file2.txt

Champ Signification
- Type de fichier (- : fichier, d : répertoire, l : lien symbolique)
rw-r--r-- Permissions du fichier (r : read, w : write, x : execution)
1 Nombre de liens physiques vers le fichier ou le répertoire
root Propriétaire
root Groupe d'appartenance
5 Taille du fichier (en octets)
Jan 2 21:48 Date de la dernière modification
file2.txt Nom du fichier

Inclure les fichiers cachés

# ls -la
total 4
drwxr-xr-x. 4 root  root  86 Jan  2 21:45 .
drwxr-xr-x. 3 root  root  16 Jan  2 19:09 ..
drwxr-xr-x. 4 root  root  30 Jan  2 19:09 dossiers
drwxr-xr-x. 2 root  root  89 Jan  2 19:09 fichiers
-rw-r--r--. 1 root  root   5 Jan  2 21:48 file2.txt
-rw-r--r--. 1 root  root   0 Jan  2 21:02 .hiddenfile
lrwxrwxrwx. 1 root  root  37 Jan  2 19:09 lien -> /tmp/tuto-linux/ls/fichiers/file1.txt

L’option -a permet d’afficher les fichiers cachés, c’est-à-dire ceux dont le nom commence par un point (.).

Note

Les répertoires . correspondent au répertoire courant et .. au répertoire parent. Pour éviter de les afficher, utilisez l’option -A.


Options de tri et d’exploration

Option Description
-R Liste récursivement les sous-répertoires
-t Trie par date de modification (du plus récent au plus ancien)
-r Inverse l’ordre du tri
-S Trie par taille (du plus grand au plus petit)

Exemple de tri par date

#  ls -lt
total 4
-rw-r--r--. 1 root root  5 Jan  2 21:48 file2.txt
lrwxrwxrwx. 1 root root 37 Jan  2 19:09 lien -> /tmp/tuto-linux/ls/fichiers/file1.txt
drwxr-xr-x. 4 root root 30 Jan  2 19:09 dossiers
drwxr-xr-x. 2 root root 89 Jan  2 19:09 fichiers

Note

ls -ltr permet d’afficher les fichiers du plus ancien au plus récent.


Options pratiques pour la lisibilité

Option Description
-1 Affiche un fichier par ligne (lecture plus claire, utile en script)
-F Ajoute un suffixe selon le type (/ répertoire, * exécutable, @ lien symbolique)
--color=auto Active la coloration selon le type de fichier
-d Affiche le répertoire lui-même, sans lister son contenu

Exemple pratique :

# ls -lhd /etc
drwxr-xr-x. 96 root root 8.0K Dec 25 23:08 /etc


Wildcards (caractères génériques)

Les wildcards permettent de sélectionner plusieurs fichiers en une seule commande. Elles sont interprétées par le shell, et non par ls lui-même.

Wildcard Signification
* Remplace n’importe quelle suite de caractères
? Remplace exactement un caractère
[abc] Remplace un caractère parmi ceux listés

Exemples :

  • Lister tous les fichiers dont le nom se termine par .txt :
# ls *.txt
file1.txt  file2.txt
  • Le caractère ? remplace exactement un caractère :
# ls file?.txt
file1.txt  file2.txt
  • Les crochets permettent de choisir un caractère parmi une liste :
# ls file[12].txt
file1.txt  file2.txt

Info

Les wildcards fonctionnent avec la plupart des commandes (cp, mv, rm, chmod, etc.), pas uniquement avec ls.


Inodes (notion importante)

Sous Linux, chaque fichier est représenté par un inode. Celui-ci contient les métadonnées du fichier (permissions, propriétaire, dates, pointeurs vers les blocs de données), mais pas son nom.

Pour afficher le numéro d’inode d’un fichier, utilisez l’option -i :

# ls -i

Exemple de sortie :

159383690 file2.txt

Note

Deux fichiers peuvent avoir des noms différents mais partager le même inode : ce sont des liens physiques (hard links).


Cas d’usage fréquents

  • Vérifier rapidement le contenu d’un répertoire
  • Contrôler les permissions de fichiers
  • Identifier la taille des fichiers
  • Vérifier la présence de fichiers cachés

Erreurs fréquentes

  • Oublier -a et penser qu’un fichier a disparu
  • Confondre la taille affichée avec l’espace réellement occupé sur disque
  • Utiliser ls -R sur de gros répertoires (commande très verbeuse)

Bonnes pratiques

  • Utiliser ls -lha pour une lecture confortable
  • L’ordre des options n’a pas d’importance : ls -alh = ls -lha
  • Préférer tree pour visualiser une arborescence complète
  • Ne jamais parser la sortie de ls dans des scripts

Warning

La sortie de ls n’est pas conçue pour être utilisée dans des scripts. Préférez les commandes find, stat ou readlink.


Commandes liées

  • cd- changer de répertoire
  • pwd - afficher le répertoire courant
  • stat - informations détaillées sur un fichier
  • tree - affichage en arborescence