Lister les fichiers et les répertoires (ls)
L'une des commandes les plus fondamentales que vous devez connaître lorsque vous utilisez la ligne de commande Linux est la commande ls. Cette commande vous permet de voir quels fichiers et répertoires existent dans le système de fichiers. Elle fournit également des informations supplémentaires sur un fichier ou un dossier, telles que ses autorisations d'accès et de propriété.
devinfo@ubuntu:~$ ls Desktop Documents Downloads Music Pictures Public Templates Videos
Notez que la commande ls produit la liste par ordre alphabétique (en colonnes plutôt qu'en lignes).
Vous pouvez utiliser le paramètre -F avec la commande ls pour distinguer facilement les fichiers des répertoires. L'utilisation du paramètre -F produit la sortie suivante :
devinfo@ubuntu:~$ ls -F Desktop/ doc.txt Documents/ Downloads/ Music/ Pictures/ Public/ script* Templates/ Videos/
Pour afficher les fichiers cachés avec les fichiers et répertoires normaux, utilisez le paramètre -a. Voici un exemple d'utilisation du paramètre -a avec la commande ls.
devinfo@ubuntu:~$ ls -a . .. .bash_logout .bashrc .cache .config Desktop doc.txt Documents Downloads .gnupg .local .mozilla Music Pictures .profile Public script .ssh Templates Videos
Tous les fichiers commençant par un point sont des fichiers cachés.
Le paramètre -R est une autre option que la commande ls peut utiliser. Appelée l'option récursive, elle affiche les fichiers contenus dans les sous-répertoires du répertoire actuel. Si vous avez beaucoup de sous-répertoires, cela peut être une liste assez longue. Voici un exemple simple de ce que produit le paramètre -R. L'option -F a été ajoutée pour vous aider à voir les types de fichiers :
devinfo@ubuntu:~$ ls -R .: Desktop doc.txt Documents Downloads Music Pictures Public script Templates Videos ./Desktop: ./Documents: ./Downloads: ./Music: ./Pictures: ./Public: ./Templates: ./Videos:
Dans la syntaxe de base, la commande ls ne produit pas beaucoup d'informations sur chaque fichier. Pour lister des informations supplémentaires, un autre paramètre populaire est -l. Le paramètre -l produit un format de liste long, fournissant plus d'informations sur chaque fichier du répertoire :
devinfo@ubuntu:~$ ls -l total 32 drwxr-xr-x 2 devinfo devinfo 4096 Sep 26 14:25 Desktop -rw-rw-r-- 1 devinfo devinfo 0 Sep 27 08:51 doc.txt drwxr-xr-x 2 devinfo devinfo 4096 Sep 26 14:25 Documents drwxr-xr-x 2 devinfo devinfo 4096 Sep 26 14:25 Downloads drwxr-xr-x 2 devinfo devinfo 4096 Sep 26 14:25 Music drwxr-xr-x 2 devinfo devinfo 4096 Sep 26 14:25 Pictures drwxr-xr-x 2 devinfo devinfo 4096 Sep 26 14:25 Public -rwxrwxr-x 1 devinfo devinfo 0 Sep 27 08:52 script drwxr-xr-x 2 devinfo devinfo 4096 Sep 26 14:25 Templates drwxr-xr-x 2 devinfo devinfo 4096 Sep 26 14:25 Videos
Le format de liste longue répertorie chaque fichier et sous-répertoire sur une seule ligne. En plus du nom de fichier, la liste affiche des informations utiles supplémentaires. La première ligne de la sortie indique le nombre total de blocs contenus dans le répertoire. Après cela, chaque ligne contient les informations suivantes sur chaque fichier (ou répertoire) :
- Le type de fichier - tel qu'un répertoire (d), un fichier (-), un fichier lié (l), un périphérique caractère (c) ou un périphérique bloc (b)
- Les permissions des fichiers
- Le nombre de liens physiques du fichier
- Le nom d'utilisateur du propriétaire du fichier
- Le nom du groupe principal du fichier
- La taille en octets du fichier
- La dernière fois que le fichier a été modifié
- Le nom du fichier ou le nom du répertoire
La commande ls contient de nombreux paramètres qui peuvent s'avérer utiles pour la gestion de fichiers. Si vous tapez à l'invite du shell man ls, vous voyez plusieurs pages de paramètres disponibles que vous pouvez utiliser pour modifier la sortie de la commande ls.
Filtrer la sortie de ls
Par défaut, la commande ls liste tous les fichiers non cachés du répertoire. Heureusement, la commande ls vous permet également de définir un filtre sur la ligne de commande. Elle utilise le filtre pour déterminer les fichiers ou les répertoires qu'elle doit afficher dans la sortie.
Lorsque vous spécifiez le nom d'un fichier spécifique comme filtre, la commande ls affiche uniquement les informations de ce fichier.
devinfo@ubuntu:~$ ls -l script -rwxrwxr-x 1 devinfo devinfo 0 Sep 27 08:52 script
La commande ls reconnaît également les caractères génériques standard et les utilise pour faire correspondre les motifs du filtre :
- Un point d'interrogation ( ?) pour représenter un caractère
- Un astérisque (*) pour représenter un nombre quelconque de caractères.
Le point d'interrogation peut être utilisé pour remplacer exactement un caractère n'importe où dans la chaîne de filtre.
devinfo@ubuntu:~$ ls -l d?c.txt -rw-rw-r-- 1 devinfo devinfo 0 Sep 27 08:51 doc.txt devinfo@ubuntu:~$ ls -l d*c.txt -rw-rw-r-- 1 devinfo devinfo 0 Sep 27 08:51 doc.txt -rw-rw-r-- 1 devinfo devinfo 0 Sep 27 09:18 douc.txt
L'utilisation de l'astérisque et du point d'interrogation dans le filtre est appelée regroupement de fichiers (file globbing). Le regroupement de fichiers est le traitement de la correspondance de motifs à l'aide de caractères génériques. Les caractères génériques sont officiellement appelés métacaractères génériques. Vous pouvez utiliser d'autres métacaractères que l'astérisque et le point d'interrogation pour le regroupement de fichiers. Vous pouvez également utiliser des parenthèses :
devinfo@ubuntu:~$ ls -l [pv]* -rw-rw-r-- 1 devinfo devinfo 0 Sep 27 09:27 pub.doc -rw-rw-r-- 1 devinfo devinfo 0 Sep 27 09:27 vid.doc
Dans cet exemple, nous avons utilisé les crochets avec deux choix potentiels pour un seul caractère dans cette position, p ou v. Les crochets représentent une position de caractère unique et vous offrent plusieurs options pour le regroupement de fichiers. Vous pouvez lister des choix de caractères, comme illustré dans l'exemple précédent, et vous pouvez spécifier une plage de caractères, telle qu'une plage alphabétique [A - P] :
devinfo@ubuntu:~$ ls -l [a-p]* -rw-rw-r-- 1 devinfo devinfo 0 Sep 27 08:51 doc.txt -rw-rw-r-- 1 devinfo devinfo 0 Sep 27 09:18 douc.txt -rw-rw-r-- 1 devinfo devinfo 0 Sep 27 09:27 pub.doc
Vous pouvez également spécifier ce qui ne doit pas être inclus dans la correspondance de motif en utilisant le point d'exclamation (!):
devinfo@ubuntu:~$ ls -l [!d]* -rw-rw-r-- 1 devinfo devinfo 0 Sep 27 09:27 pub.doc -rwxrwxr-x 1 devinfo devinfo 0 Sep 27 08:52 script -rw-rw-r-- 1 devinfo devinfo 0 Sep 27 09:27 vid.doc
Le regroupement de fichiers est une fonctionnalité puissante lors de la recherche de fichiers. Il peut également être utilisé avec d'autres commandes shell en plus de ls.