Comment utiliser la commande ls pour répertorier les fichiers et les répertoires sous Linux

Nous utilisons la commande Linux ls tous les jours sans y penser. C’est dommage. Faites attention, et vous trouverez de nombreuses options utiles, dont certaines que vous devriez ajouter à votre arsenal de ligne de commande.

ls répertorie les fichiers et répertoires

La commande ls est probablement la première commande que la plupart des utilisateurs de Linux rencontrent. Ceux d’entre nous qui traînent autour de la ligne de commande l’utilisent jour après jour sans même y penser. Cela pourrait expliquer pourquoi cette commande est plus que ce que la plupart des utilisateurs réalisent. Nous listons les fichiers avec pour voir ce qu’il y a dans un répertoire. Nous listons les fichiers au format long lorsque nous souhaitons consulter les autorisations sur un fichier. Au-delà de cela, il est peu considéré.

La commande ls est l’une de ces commandes avec une multitude d’options. Cela fait peut-être partie du problème. Il y a tellement d’options, comment les parcourir pour trouver celles qui sont utiles? Et après les avoir trouvés, comment vous en souvenez-vous?

Les permutations utiles de la commande ls avec leurs chaînes d’options et de paramètres sont les candidats parfaits pour les alias. En fait, dans la plupart des distributions, ce que vous considérez comme la commande ls «nue» est en fait un alias. Entre autres, la commande type peut être utilisée pour afficher la définition sous-jacente des alias. Regardons la définition de ls:

type ls

tapez ls dans une fenêtre de terminal

Les paramètres –color = auto sont inclus automatiquement chaque fois que vous utilisez la commande ls. C’est ce qui fournit les différentes couleurs pour les différents types de fichiers dans les listes.

Annonces ls simples

Tous ceux qui ont passé du temps à utiliser le terminal Linux savent que, par défaut, ls répertorie les fichiers et répertoires dans le répertoire courant.

ls

ls dans une fenêtre de terminal

Si vous souhaitez que votre annonce soit produite dans une seule colonne, utilisez l’option -1 (un fichier par ligne):

ls -1

ls -1 dans une fenêtre de terminal

Nous discuterons de ce nom de fichier étrange en haut de la liste dans une minute.

Utilisation de ls sur différents répertoires

Pour que ls répertorie les fichiers dans un répertoire autre que le répertoire courant, transmettez le chemin d’accès au répertoire à ls sur la ligne de commande. Vous pouvez également transmettre plusieurs répertoires à ls et les répertorier les uns après les autres. Ici, nous demandons à ls de lister les fichiers dans deux répertoires, l’un appelé «Help» et l’autre appelé «gc_help».

ls Help gc_help

Aide ls gc_help dans une fenêtre de terminal

Lorsque ls a répertorié le contenu du premier répertoire, il liste le contenu du second. Il imprime le nom de chaque répertoire au fur et à mesure qu’il les traite:

  Est-il légal d'effectuer une vérification des antécédents sur une maison?

Nom du répertoire affiché par ls avant que le contenu ne soit répertorié.

Utilisation des modèles de fichiers

Pour répertorier de manière sélective un ensemble de fichiers, utilisez la correspondance de modèles. Le point d’interrogation « ? » représentera n’importe quel caractère unique et l’astérisque «*» représentera n’importe quelle chaîne de caractères. Pour lister tous les fichiers ou répertoires dont le nom commence par «ip_», utilisez ce format:

ls ip_*

ls ip_ * dans une fenêtre de terminal

Pour répertorier les fichiers dotés d’extensions «.c», utilisez ce format:

ls *.c

ls * .c dans une fenêtre de terminal

Vous pouvez également utiliser ls avec grep, et utiliser grep’s capacités de correspondance de modèle. Cherchons tous les fichiers dont le nom contient la chaîne «_pin_»:

ls | grep _pin_

ls | grep _pin_ dans une fenêtre de terminal

C’est presque la même chose que d’utiliser ls seul, avec deux caractères génériques:

ls | grep _pin_
ls *_pin_*

ls | grep _pin_ dans une fenêtre de terminal

Pourquoi presque la même chose? Notez les différentes dispositions. grep force la sortie à un seul nom de fichier par format de ligne.

Caractères non imprimables

Il est possible de se retrouver avec un nom de fichier qui a un caractère non imprimable ou de contrôle dans son nom de fichier. Cela peut généralement se produire lorsque vous développez une archive que vous avez téléchargée sur le Web ou que vous avez récupéré un référentiel git, et que l’auteur d’origine a fait une erreur en créant un fichier mais ne l’a pas repéré.

Notre fichier étrange est l’un de ceux-ci:

Nom de fichier avec caractère de contrôle dans une fenêtre de terminal

Si nous le regardons dans le navigateur de fichiers et que nous appuyons sur «F2» pour le renommer, les caractères non imprimables sont représentés par un symbole étrange.

Nom de fichier avec un caractère de contrôle dedans, dans la fenêtre de dialogue de changement de nom

Vous pouvez utiliser l’option -b (d’échappement) pour vous permettre de voir ce que le nom de fichier contient réellement. Cette option oblige ls à utiliser les séquences d’échappement du Langage de programmation C pour représenter les caractères de contrôle.

ls -b a*

ls -ba * dans une fenêtre de terminal

Le personnage mystérieux se révèle être un caractère de nouvelle ligne, représenté en C par «n».

Ignorer les fichiers

Pour que certains fichiers soient omis d’une liste, utilisez l’option –hide. Supposons que vous ne vouliez pas voir les fichiers de sauvegarde «.bak» dans la liste. Vous pouvez utiliser cette commande:

ls
ls --hide=*.bak

ls --hide = *. bak dans une fenêtre de terminal

Les fichiers «.bak» ne sont pas inclus dans la deuxième liste.

La liste au format long

L’option -l (liste longue) oblige ls à fournir des informations détaillées sur chaque fichier.

ls -l

ls -l dans une fenêtre de terminal

Il y a beaucoup d’informations ici, alors passons en revue.

La première chose que ls affiche est la taille totale de tous les fichiers de la liste. Ensuite, chaque fichier ou répertoire est affiché sur une ligne par lui-même.

Le premier ensemble de dix lettres et tirets correspond au type de fichier et au propriétaire, au groupe et aux autres autorisations de fichier.

Le tout premier caractère représente le type de fichier. Ce sera l’un des:

-: un fichier régulier.
b: Un fichier spécial de bloc.
c: un fichier spécial de caractère.
d: Un répertoire.
l: Un lien symbolique.
n: un fichier réseau.
p: un tube nommé.
s: une prise.

Les neuf caractères suivants sont trois groupes de trois caractères affichés de manière contiguë. Chaque groupe de trois représente les autorisations de lecture, d’écriture et d’exécution, dans cet ordre. Si l’autorisation est accordée, il y aura un r, w ou x présent. Si l’autorisation n’est pas accordée, un tiret – s’affiche.

  Comment faire en sorte que Linux ressemble à Chrome OS

Le premier jeu de trois caractères correspond aux autorisations du propriétaire du fichier. Le deuxième ensemble de trois autorisations est destiné aux membres du groupe et le dernier ensemble de trois autorisations est destiné aux autres.

Parfois, l’autorisation d’exécution pour le propriétaire est représentée par un s. C’est le setuid bit. S’il est présent, cela signifie que le fichier est exécuté avec les privilèges du propriétaire du fichier, et non de l’utilisateur exécutant le fichier.

L’autorisation d’exécution pour le groupe peut également être un s. C’est le setgid bit. Lorsque cela est appliqué à un fichier, cela signifie que le fichier sera exécuté avec les privilèges du groupe de l’ower. Lorsqu’il est utilisé avec un répertoire, tous les fichiers créés à l’intérieur de celui-ci prendront leurs autorisations de groupe du répertoire dans lequel ils sont créés, et non de l’utilisateur qui crée le fichier.

L’autorisation d’exécution pour les autres peut parfois être représentée par un t. C’est le peu collante. Il est généralement appliqué aux répertoires. Si cela est défini, quels que soient les privilèges d’écriture et d’exécution définis sur les fichiers du répertoire, seul le propriétaire du fichier, le propriétaire du répertoire ou l’utilisateur root peut renommer ou supprimer des fichiers dans le répertoire.

Une utilisation courante du sticky bit est sur des dossiers tels que «/ tmp». Ceci est accessible en écriture par tous les utilisateurs de l’ordinateur. Le bit sticky sur le répertoire garantit que les utilisateurs – et les processus lancés par les utilisateurs – ne peuvent renommer ou supprimer que leurs propres fichiers temporaires.

Nous pouvons voir le sticky bit dans le répertoire «/ tmp». Notez l’utilisation de l’option -d (répertoire). Cela amène ls à rapporter les détails du répertoire. Sans cette option, ls rendra compte des fichiers à l’intérieur du répertoire.

ls -l -d /tmp

ls -l -d / tmp dans une fenêtre de terminal

Le nombre suivant les autorisations est le nombre de liens physiques vers le fichier ou le répertoire. Pour un fichier, il en est généralement un, mais si d’autres liens physiques sont créés, ce nombre augmentera. Un annuaire a généralement au moins deux liens physiques. L’un est un lien vers lui-même, et l’autre est son entrée dans son répertoire parent.

Le nom du propriétaire et du groupe s’affiche ensuite. Ils sont suivis de la taille du fichier et de la date de la dernière modification du fichier. Enfin, le nom du fichier est donné.

Tailles de fichiers lisibles par l’homme

Avoir la taille des fichiers en octets n’est pas toujours pratique. Pour voir les tailles de fichier dans les unités les plus appropriées (kilo-octets, mégaoctets, etc.), utilisez l’option -h (lisible par l’homme):

ls -l -h

ls -l -h dans une fenêtre de terminal

Affichage des fichiers cachés

Pour voir les fichiers cachés, utilisez l’option -a (all):

ls -l -a

ls -l -a dans une fenêtre de terminal

Les deux entrées « . » et «..» représentent respectivement le répertoire courant et le répertoire parent. Un fichier appelé «.base_settings» est maintenant visible pour la première fois.

  Comment passer à Pop_OS 20.04

Omettre. et .. à partir des listes

Si vous ne voulez pas que votre fiche soit encombrée de « . » et « .. », mais vous voulez voir les fichiers cachés, utilisez l’option -A (presque tous):

ls -l -A

ls -l -A dans une fenêtre de terminal

Le fichier masqué est toujours répertorié, mais le « . » et les entrées «..» sont supprimées.

Liste des répertoires de manière récursive

Pour que ls répertorie les fichiers dans tous les sous-répertoires, utilisez l’option -R (récursive)

ls -l -R

ls -l -R dans une fenêtre de terminal

ls parcourt toute l’arborescence de répertoires sous le répertoire de départ et répertorie les fichiers dans chaque sous-répertoire.

sortie de ls listant les répertoires de manière récursive

Affichage de l’UID et du GID

Pour afficher l’ID utilisateur et l’ID de groupe au lieu du nom d’utilisateur et du nom du groupe, utilisez l’option -n (uid numérique et gid).

ls -n

ls -n dans une fenêtre de terminal

Tri des annonces

Vous pouvez trier la liste par extension, taille de fichier ou heure de modification. Ces options ne doivent pas nécessairement être utilisées avec le format de liste longue, mais il est généralement judicieux de le faire. Si vous triez par taille de fichier, il est logique de voir les tailles de fichier dans la liste. Lorsque vous triez par type d’extension, le format de liste longue n’est pas si important.

Pour trier par extension, utilisez l’option -X (trier par extension).

ls -X -1

ls -X -1 dans une fenêtre de terminal

Les répertoires sont listés en premier (pas d’extensions du tout) puis les autres suivent par ordre alphabétique, en fonction des extensions.

Pour trier par taille de fichier, utilisez l’option -S (trier par taille de fichier).

ls -l -h -S

ls -l -h -S dans une fenêtre de terminal

L’ordre de tri est du plus grand au plus petit.

Pour trier la liste par heure de modification, utilisez l’option -t (trier par heure de modification).

ls -l -t

ls -l -t dans une fenêtre de terminal

La liste est triée par heure de modification.

Si l’heure de modification du fichier se situe dans l’année en cours, les informations affichées sont le mois, le jour et l’heure. Si la date de modification n’était pas dans l’année en cours, les informations affichées sont le mois, le jour et l’année.

Un moyen rapide d’obtenir les fichiers les plus récents et les plus anciens d’un répertoire est d’utiliser ls avec les commandes head et tail.

Pour obtenir le fichier ou le répertoire le plus récent, utilisez cette commande:

ls -t | head -1

Pour obtenir le fichier ou le répertoire le plus ancien, utilisez cette commande:

ls -t | tail -1

ls -t | head -1 dans une fenêtre de terminal

Pour inverser l’ordre de tri

Pour inverser l’un des ordres de tri, utilisez l’option -r (inverse).

ls -l -h -S -r

ls -l -h -S -r dans une fenêtre de terminal

La liste est maintenant classée du plus petit fichier au plus gros fichier.

Et il y a plus

Consultez la page de manuel de ls, il y a beaucoup plus d’options. Certains d’entre eux satisfont des cas d’utilisation quelque peu obscurs, mais de temps en temps, vous serez heureux de les connaître.

Avez-vous besoin de voir les horodatages des fichiers avec la précision maximale que Linux peut fournir? Utilisez l’option à temps plein:

ls --full-time

Vous souhaitez peut-être voir le numéro d’inode des fichiers? Utilisez l’option inode:

ls -i

Vous travaillez sur un affichage monochrome et souhaitez supprimer tout risque de confusion entre les fichiers et les répertoires et les liens? Utilisez l’option classify, et ls ajoutera l’un de ces éléments à chaque entrée de liste:

/: Un répertoire.
@: Un lien symbolique.
|: Un tube nommé.
=: Une prise.
*: Un fichier exécutable

ls -F

Faites un peu de fouille. Vous constaterez que ls est une veine riche, et vous continuerez à produire des gemmes.