Menu Fermer

La commande ls Linux : utilisation et exemples

Ls est l’une des commandes de base que tout utilisateur Linux devrait savoir.

La commande ls répertorie les fichiers et les répertoires dans le système de fichiers et affiche des informations détaillées sur eux.
Il fait partie du package GNU Core Utilities qui est installé sur toutes les distributions Linux.

Ce tutoriel vous montrer comment utiliser la commande ls via des exemples pratiques et des explications détaillées des options ls les plus courantes.

La commande ls : utilisation et exemples

Comment utiliser la commande LS

La syntaxe de la commande LS est la suivante :

ls [OPTIONS] [FICHIERS]

Lorsqu’il est utilisé sans options et arguments, LS affiche une liste des noms de tous les fichiers du répertoire de travail actuel:

debian@linux:/$ ls
bin  boot  dev  etc  home  initrd.img  initrd.img.old  lib  lib32  lib64  libx32  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  vmlinuz  vmlinuz.old

Pour afficher les fichiers en liste, utilisez l’option -1 :

ls -1

Pour lister les fichiers d’un répertoire spécifique, saisissez le nom de ce dernier.
Par exemple pour lister le contenu du dossier home, saisissez :

ls /home

Vous pouvez spécifier plusieurs répertoires à la suite afin d’en lister le contenu :

ls /etc /home

Lorsque vous tentez d’accéder à un dossier dont vous n’avez pas les autorisations, le message Permission denied s’affiche.
Par exemple, ici je tente de lister le contenu du dossier /root sans être identifié en root.

ls /root/
ls: cannot open directory '/root/': Permission denied

Exemples d’utilisation de la commande LS

Format de la liste longue de la commande ls

L’option la plus utilisé est l’option -l qui affiche le format de liste longue.
Cela affiche des informations précises sur les fichiers dans un ou plusieurs répertoires

ls -l /etc

La première ligne indique la taille totale occupée par le répertoire.
Pour plus de détails, on peut utiliser la commande du ou df.

Puis la commande ls affiche les fichiers et répertoires en liste avec les informations suivantes :

Lister les fichiers en liste et détails avec la commande ls de Linux

Selon la distribution Linux, des codes couleurs peuvent s’afficher, par exemple ci-dessus, les répertoires sont en cyan.
Le premier caractère identifie le type de fichier :

  • – Fichier régulier
  • b – Bloc de fichier spécial
  • c – fichier spécial de caractère
  • d – Répertoire
  • l – Lien symbolique
  • n – fichier réseau
  • p – FIFO
  • s – socket

Ainsi dans la capture d’écran précédente listant le répertoire /etc, on voit bien les répertoires avec un d en premier caractère.
Ci-dessous une partie du répertoire plugins de munin qui contient beaucoup de liens symboliques.
On voit qu’il début bien par le caractère l.

Lister les fichiers en liste et détails avec la commande ls de Linux

Puis on trouve les permissions du fichier ou répertoire identifiés comme ceci :

  • r – Permission de lire le fichier
  • w – Permission d’écrire dans le fichier
  • x – Permission d’exécuter le fichier
  • s – setgid bit
  • t – sticky bit

Pour plus d’informations et explications sur les autorisations, suivre ce didacticiel :

En troisième position, on trouve le propriétaire du fichier/répertoire suivi du groupe suivi par la taille du fichier, montré en octets. Utilisez l’option -h si vous souhaitez imprimer des tailles dans un format lisible par l’homme.
Vous pouvez modifier le propriétaire du fichier à l’aide de la commande chown.
Enfin la dernière date et heure de modification de fichier. La dernière colonne est le nom du fichier.

Lister les fichiers du répertoire courant ou le répertoire parent avec ls

Pour lister les ficheirs du répertoire courant, utilisez la commande ls sans aucune option :

ls

Mais on peut aussi mettre un point :

ls .

ou :

ls ./

Pour lister les fichiers du répertoire parent, indiquez ../
Par exemple, en étant dans le répertoire /etc, cela va lister le contenu de / puisque c’est le répertoire au dessus.

debian@linux:/etc$ ls ../
bin  boot  dev  etc  home  initrd.img  initrd.img.old  lib  lib32  lib64  libx32  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  vmlinuz  vmlinuz.old

Ainsi o peut remonter indéfiniment dans l’arborescence avec ../../ ou ../../../ et ainsi de suite.

debian@linux:/etc/nginx$ ls ../../../
bin  boot  dev  etc  home  initrd.img  initrd.img.old  lib  lib32  lib64  libx32  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  vmlinuz  vmlinuz.old
Lister les fichiers du répertoire courant ou le répertoire parent avec la commande ls de Linux

Lister les fichier du répertoire /root ou /home de l’utilisateur

Pour lister les fichier du répertoire /root :

ls /root

Si vous êtes identifié avec un utilisateur non root, vous devez utiliser la commande sudo :

sudo /root

Pour lister les fichiers du répertoire /home d’un utilisateur, indiquez le répertoire /home suivi du nom de l’utilisateur.
Par exemple pour lister le contenu de l’utilisateur malekalmorte et debian :

ls /home/malekalmorte
ls /home/debian

Si vous souhaitez le faire sur votre répertoire utilisateur, vous pouvez utiliser ~ :

debian@linux:/etc/nginx$ ls ~/
image2.img  image3.img  image.img  Ubuntu.txt

Lister que les répertoires sans les fichiers

Pour ne lister que les répertoires sans les fichiers, utilisez l’option -d suivi de */ :

ls -d */
Lister que les répertoires sans les fichiers avec la commande ls de Linux

Mais Il est possible de ne lister que les répertoires avec la commande ls en le combinant avec la commande grep.
Pour cela, il faut lister que les entrées qui débutent par un d.
On peut facilement le faire en capturant ^d avec grep.

debian@linux:/$ ls -lh /etc|grep ^d
drwxr-xr-x 2 root root   4.0K Aug 14 15:40 alternatives
drwxr-xr-x 3 root root   4.0K Jul 15 19:47 apache2
drwxr-xr-x 3 root root   4.0K Aug 14 15:30 apparmor
drwxr-xr-x 7 root root   4.0K Aug 14 15:30 apparmor.d
drwxr-xr-x 7 root root   4.0K Aug 14 15:25 apt
drwxr-xr-x 2 root root   4.0K Aug 14 15:30 bash_completion.d
drwxr-xr-x 2 root root   4.0K Mar 18 19:59 binfmt.d
drwxr-xr-x 3 root root   4.0K Jun 24 11:46 ca-certificates
drwxr-xr-x 2 root root   4.0K Jun 24 11:47 calendar
drwxr-xr-x 4 root root   4.0K Jul 15 01:02 cloud
drwxr-xr-x 2 root root   4.0K Aug 14 15:37 cron.d
drwxr-xr-x 2 root root   4.0K Aug 14 15:37 cron.daily
[...]

Je vous rappelle qu’il existe aussi la commande tree qui permet de lister l’arborescence complète.

Lister la taille de fichiers avec la commande ls

Par défaut lorsque vous utilisez la commande ls avec l’option -l, les tailles de fichiers sont en octets.
Ce qui n’est pas forcément facile à lire pour un humain.

debian@linux:~$ ls -l
total 2705092
-rw-r--r-- 1 debian debian  250000000 Aug 15 14:57 image2.img
-rw-r--r-- 1 debian debian   20000000 Aug 15 14:58 image3.img
-rw-r--r-- 1 debian debian 2500000000 Aug 15 14:57 image.img
-rw-r--r-- 1 debian debian        267 Aug 14 14:12 Ubuntu.txt

Pour rendre la sortie lisible pour un humain, ajoutez l’option -h.
Les tailles de fichiers s’affichent alors en KiloOctet, Megaoctet, Gigaoctet ou Teraoctets, …

debian@linux:~$ ls -lh
total 2.6G
-rw-r--r-- 1 debian debian 239M Aug 15 14:57 image2.img
-rw-r--r-- 1 debian debian  20M Aug 15 14:58 image3.img
-rw-r--r-- 1 debian debian 2.4G Aug 15 14:57 image.img
-rw-r--r-- 1 debian debian  267 Aug 14 14:12 Ubuntu.txt

Afficher les fichiers cachés avec la commande ls

Par défaut, la commande ls n’affiche pas les fichiers cachés. Sur Linux, un fichier caché est n’importe quel fichier qui commence par un point (.).
Pour afficher tous les fichiers, y compris les fichiers cachés, utilisez l’option -a :

debian@linux:~$ ls ~/
image2.img  image3.img  image.img  Ubuntu.txt

debian@linux:~$ ls -a ~/
.  ..  .bash_history  .bash_logout  .bashrc  .config  .gnupg  image2.img  image3.img  image.img  .joe_state  .lesshst  .mysql_history  .profile  .ssh  Ubuntu.txt  .viminfo  .wp-cli

Tri de la sortie de ls

Par défaut, la commande ls trie les fichiers par ordre alphabétique.
Elle propose quelques options de trie comme par taille de fichiers, date de fichiers.
Enfin l’option -r permet d’inverser le tri.

Inverser l’ordre alphabétique

Pour lister les fichiers dans l’ordre inverse alphabétique :

ls -1r

Ou avec la liste des format long :

ls -lr

Par défaut, les fichiers et les dossiers sont triés ensemble. Si vous préférez trier les dossiers séparément et être affiché avant les fichiers, vous pouvez utiliser la première –group-directories-first.

ls -lr /etc/ --group-directories-first

Par taille de fichiers

Vous pouvez trier le contenu par taille du fichier avec la plus grande taille répertoriée en premier, en utilisant l’option -S.

ls -R

Vous pouvez trier la sortie pour afficher d’abord le fichier le plus petit en utilisant l’option inverse (-R) :

ls -Rr

Par date de modifications de fichiers

Afin de trier le contenu de la dernière heure modifiée, vous devez utiliser l’option -t :

ls -lht

Pour lister les fichiers dans l’ordre inverse de la date de modifications de fichiers :

ls -lhtr

Par extensions de fichiers

Une autre option (-X) offre la possibilité de trier par extension.
Cela vous permet d’afficher des fichiers groupés par des extensions.

ls -lX

Trier ls avec sort

Mais pour trier sur une autre donnée, il faut l’utiliser avec la commande sort.

Pour trier par une colonne particulière, utilisez la commande sort en spécifiant la colonne ou le numéro de champ. Donc, pour trier le nom du propriétaire, qui est dans le champ 3 :

ls -l | sort -k 3

Les options suivantes de la commande sort peuvent être utile.
Notez que ce sont les mêmes options que la commande ls :

  • –sort=extension (ou -X ) – Trier l’alphabétiquement par extension
  • –sort=size (ou-S) – Trier par taille de fichier
  • –sort=time (ou -t) – Trier par délai de modification
  • –sort=version (ou-v) – Sorte de version naturelle.

Liste des sous-répertoires récursives

Enfin l’option -R permet de lister un répertoire en récursif.
Cela va donc lister l’intégralité de l’arborescence.

ls -R