ls
Sommaire
La commande ls permet de lister le contenu d'un répertoire.
Cette commande possède un certain nombre d'options intéressantes et de particularités de fonctionnement à connaître. Aussi, commençons par les fonctionnalités de bases avant d'approfondir.
Les bases
Utilisation
Lorsque la commande est utilisé sans paramètres, elle affiche l'ensemble des fichiers (non cachés) du répertoire courant (le répertoire ".").
Par exemple, si le répertoire courant contient les fichiers LinuxFR et TooLinux:
$ ls LinuxFR TooLinux
La commande permet aussi de lister un ou plusieurs répertoires, il faut préciser le chemin de ceux-ci après la commande:
$ ls /boot/ /opt/ /boot/: abi-2.6.20-15-generic config-2.6.20-16-generic initrd.img-2.6.20-15-generic.bak memtest86+.bin vmlinuz-2.6.20 abi-2.6.20-16-generic grub initrd.img-2.6.20-16-generic System.map-2.6.20-15-generic vmlinuz-2.6.20-15-generic config-2.6.20-15-generic initrd.img-2.6.20-15-generic initrd.img-2.6.20-16-generic.bak System.map-2.6.20-16-generic vmlinuz-2.6.20-16-generic /opt/: VirtualBox-1.4.0
Les fichiers cachés
Par défaut, ls n'affiche pas les fichiers et dossiers dont le nom commence par un point. Par convention, les fichiers et dossiers sont donc considérés comme caché à partir du moment où ils commencent par un point, rien dans le noyau Linux ne cache les fichiers.
Deux éléments particuliers commencent par un point et sont donc cachés par défaut: un lien vers le dossier lui-même, qui est un dossier nommé point (.), et un lien vers le dossier parent, qui est un dossier dont le nom est un double point (..).
L'option -a permet d'afficher tout les fichiers, y compris les fichiers dont le nom débute par un point. Une variante parfois utile pour les scripts est l'option -A qui se comporte comme -a mais exclu les dossiers "." et "..".
Voici un exemple d'utilisation de -a et -A:
$ ls a.out direct LinuxFR TooLinux $ ls -a . .. a.out direct .hidden LinuxFR TooLinux $ ls -A a.out direct .hidden LinuxFR TooLinux
Utilisation avancé
Affichage en ligne ou en colonne
L'affichage de ls peut troubler car l'affichage en colonne rend la commande inutilisable en synergie avec d'autres outils comme grep. En réalité il n'en est rien car le format en colonne ne s'affiche que lorsque ls est directement affiché à la console. Ainsi la commande est directement utilisable avec grep car chaque fichier sera affiché sur une ligne différente.
Format long
Une option particulièrement importante est -l, elle permet d'afficher plusieurs attributs des fichiers lorsqu'ils sont listés.
Voici un premier exemple d'utilisation du format long:
$ ls -l -rwxr-xr-x 1 ikipou ikipou 8924 2007-09-20 22:46 a.out drwxr-xr-x 2 ikipou ikipou 8 2007-10-03 08:02 direct -rw-r--r-- 1+ ikipou ikipou 0 2007-10-03 08:01 Magellan lrwxrwxrwx 1 ikipou ikipou 8 2007-10-03 08:01 Magellan.fpms -> Magellan
Les informations affichés sont: type de fichier, droits, nombre liens physique, propriétaire, groupe propriétaire, taille du fichier, date de modification, nom du fichier. Ces informations sont détaillées ci-après.
Première colonne
La première colonne (par exemple -rwxr-xr-x) représente le type et les droits du fichier. Le premier caractère donne le type du fichier. Le type peut être donné par un caractères de la liste suivantes:
- -
- fichier ordinaire
- d
- répertoire
- l
- lien symbolique
- s
- socket
- p
- tube nommé
- b
- descripteur de périphérique de type bloc
- c
- descripteur de périphérique de type caractère
Les trois premiers types sont ceux qu'on retrouve le plus souvent dans le système de fichier.
Les neuf caractères qui suivent le type de fichier (par exemple rwxr-xr-x) permettent de représenter les permissions élémentaires de celui-ci. La gestion des droits et permissions n'est pas détaillé ici.
À la suite des caractères spécifiant les droits, le signe + apparait si le fichier utilise des ACL. Les ACL ne sont pas traités ici.
Seconde colonne
La seconde colonne contient un nombre dont la signification dépend du type de fichier affiché. Pour un fichier ordinaire, il représente le nombre de liens physique (hard link) vers le fichier. Pour les dossiers, ce nombre donne le nombre de sous-dossier (+2 car il y a les dossiers "." et "..").
Troisième et quatrième colonnes
Les colonnes trois et quatre donnent respectivement le propriétaire et le groupe propriétaire du fichier.
Cinquième et sixième colonnes
La cinquième colonne donne la taille du fichier octet. L'option -h (ou --human-readable) permet d'afficher un format plus simple à lire et note les unités:
$ ls -lh total 12K -rwxr-xr-x 1 ikipou ikipou 8,8K 2007-09-20 22:46 a.out drwxr-xr-x 2 ikipou ikipou 8 2007-10-03 08:02 direct -rw-rw-r--+ 1 ikipou ikipou 0 2007-10-03 08:01 Magellan lrwxrwxrwx 1 ikipou ikipou 8 2007-10-03 08:01 Magellan.fpms -> Magellan
La sixième colonne affiche la date de modification des fichiers.
Septième colonne
Finalement la dernière colonne affiche le nom du fichier. Si le fichier est un lien symbolique, la destination du lien est aussi affichée.
Afficher les informations d'un dossier
Si le chemin d'un dossier ou d'un lien symbolique est fournit à la commande ls, le contenu du dossier est listé et le liens symbolique est suivit.
Ce comportement peut être gênant lorsque l'on désire avoir les informations du dossier lui-même et pas son contenu (par exemple avec l'option -l). L'option -d permet de changer ce comportement et de ne pas lister le contenu des dossiers.
Voici un exemple de ce que fait la commande avec -d (et -l pour l'affichage long):
$ ls a.out direct LinuxFR TooLinux $ ls -dl direct drwxr-xr-x 2 ikipou ikipou 1 2007-09-20 22:57 direct/
Si l'option -d n'avait pas été utilisée, ls aurait listé le contenu du dossier (qui est ici vide):
$ ls -l direct total 0
Les options importantes
- -a, --all
- Affiche aussi les fichiers et dossiers dont le nom commence par un point.
- -A
- Affiche tout les fichiers (comme -a) à l'exception des dossiers "." et "..".
- -l, --format=long, --format=verbose
- Affiche les informations étendue des fichiers. Les informations affichées sont: les autorisation, le propriétaire, le groupe, la taille pour les fichiers/le nombre d'éléments pour les dossiers, la date de modification et enfin le nom du fichier.
- --color
- Utilise des couleurs pour l'affichage.
- -d, --directory
- Les répertoires précisés sur la commande sont traités comme des fichiers, ils sont affiché plutôt que de lister leur contenu.
- -C
- Force l'affichage en colonne
- -1
- Force l'affichage d'un fichier par ligne.
- -h, --human-readable
- Affiche les tailles dans un format plus lisible.
- -S
- Trie les fichiers par ordre de taille décroissante.
Page de manuel
Pour voir l'ensemble des options de ls, voyez la page de manuel.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre