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
-aet penser qu’un fichier a disparu - Confondre la taille affichée avec l’espace réellement occupé sur disque
- Utiliser
ls -Rsur de gros répertoires (commande très verbeuse)
Bonnes pratiques
- Utiliser
ls -lhapour une lecture confortable - L’ordre des options n’a pas d’importance :
ls -alh=ls -lha - Préférer
treepour visualiser une arborescence complète - Ne jamais parser la sortie de
lsdans 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épertoirepwd- afficher le répertoire courantstat- informations détaillées sur un fichiertree- affichage en arborescence