Linux : Commandes avec ls pour lister les fichiers et répertoires

La commande ls est l’une des commandes les plus utilisées dans les systèmes Unix et Linux. Elle permet de lister les fichiers et répertoires présents dans un répertoire donné. Bien que ls semble simple à première vue, elle offre en réalité de nombreuses options et fonctionnalités qui peuvent faciliter la navigation et l’organisation des fichiers. Dans cet article, nous allons explorer en détail les différentes commandes et options disponibles avec ls.

Syntaxe de base

La syntaxe de base de la commande ls est la suivante :

ls [options] [répertoire]
  • [options] : Les différentes options que vous pouvez spécifier pour modifier le comportement de la commande.
  • [répertoire] : Le répertoire dont vous souhaitez lister le contenu. Si aucun répertoire n’est spécifié, ls affichera le contenu du répertoire courant.

Principales options de la commande ls

-l : Afficher en mode long

L’option -l (mode long) affiche les détails des fichiers et répertoires, y compris les permissions, le nombre de liens, le propriétaire, le groupe, la taille, la date de modification et le nom du fichier.

$ ls -l
-rw-r--r-- 1 user group 4096 Jan 1 10:00 fichier.txt
drwxr-xr-x 2 user group 4096 Jan 1 10:00 repertoire
-a : Afficher tous les fichiers, y compris les fichiers cachés

L’option -a permet d’afficher tous les fichiers, y compris ceux dont le nom commence par un point (fichiers cachés).

$ ls -a
.  ..  fichier.txt  .cache  repertoire
-h : Afficher les tailles de fichiers de manière lisible par l’homme

L’option -h (human-readable) affiche les tailles de fichiers sous une forme lisible par l’homme, en utilisant des unités telles que KB, MB, GB, etc.

$ ls -lh
-rw-r--r-- 1 user group 4.0K Jan 1 10:00 fichier.txt
drwxr-xr-x 2 user group 4.0K Jan 1 10:00 repertoire
-R : Afficher récursivement le contenu des sous-répertoires

L’option -R (recursive) affiche récursivement le contenu de tous les sous-répertoires.

$ ls -R
.:
fichier.txt  repertoire

./repertoire:
fichier1.txt  fichier2.txt  sous_repertoire

./repertoire/sous_repertoire:
fichier3.txt
-t : Trier par date de modification

L’option -t trie les fichiers par date de modification, du plus récent au plus ancien.

$ ls -lt
-rw-r--r-- 1 user group 4096 Jan 20 10:00 fichier2.txt
-rw-r--r-- 1 user group 4096 Jan 10 10:00 fichier1.txt
drwxr-xr-x 2 user group 4096 Jan 1 10:00 repertoire
-F : Ajouter des indicateurs pour différencier les types de fichiers

L’option -F ajoute des indicateurs à la fin de chaque nom de fichier pour indiquer le type de fichier. Par exemple, un “/” est ajouté à la fin des noms de répertoires.

$ ls -F
fichier.txt  repertoire/

Voici quelques cas particuliers où l’utilisation de certaines options de la commande ls peut être particulièrement utile :

Afficher uniquement les fichiers avec une extension spécifique

Supposons que vous souhaitiez lister uniquement les fichiers avec une extension “.txt”. Vous pouvez utiliser une combinaison de la commande ls et des expressions régulières pour filtrer les fichiers en fonction de leur extension :

$ ls -l | grep '\.txt$'

Cette commande affichera uniquement les fichiers se terminant par “.txt” en utilisant l’option -l pour le mode long et grep pour filtrer les résultats.

Afficher les fichiers triés par taille

Si vous avez besoin de lister les fichiers en fonction de leur taille, vous pouvez utiliser l’option -S avec ls, qui trie les fichiers par taille décroissante :

$ ls -lS

Cela affichera les fichiers en mode long, triés par taille décroissante.

Afficher uniquement les répertoires

Parfois, vous pouvez avoir besoin de lister uniquement les répertoires dans un répertoire donné. Vous pouvez utiliser l’option -d pour afficher uniquement les noms de répertoires sans lister leur contenu :

$ ls -d */

Cela affichera uniquement les noms de répertoires présents dans le répertoire courant.

Afficher les fichiers avec leur chemin complet

Si vous avez besoin de lister les fichiers avec leur chemin complet, vous pouvez utiliser l’option -d avec ls, qui empêche ls de lister le contenu des répertoires :

$ ls -d "$PWD"/*

Cela affichera tous les fichiers du répertoire courant avec leur chemin complet.

Afficher les fichiers modifiés il y a moins de X jours

Si vous voulez lister les fichiers qui ont été modifiés il y a moins de X jours, vous pouvez utiliser la combinaison de find et ls :

$ find . -type f -mtime -X -exec ls -l {} \;

Remplacez “X” par le nombre de jours souhaité. Cette commande listera tous les fichiers modifiés il y a moins de X jours dans le répertoire courant et ses sous-répertoires.

Ces cas particuliers illustrent la flexibilité et la puissance de la commande ls ainsi que sa capacité à répondre à une variété de besoins en matière de gestion des fichiers et des répertoires.

Voici quelques cas complexes où la combinaison de différentes options de la commande ls avec d’autres commandes Unix peut être utile :

Afficher les dix plus grands fichiers d’un répertoire

Pour afficher les dix plus grands fichiers d’un répertoire donné, vous pouvez combiner la commande ls avec sort et head :

$ ls -l | sort -k5 -nr | head -10

Cette commande liste les fichiers en mode long, les trie par taille (-k5) de manière numérique (-n) et de manière décroissante (-r). Ensuite, head -10 sélectionne les dix premières lignes de la sortie, ce qui correspond aux dix plus grands fichiers.

Afficher les répertoires les plus récemment modifiés

Si vous voulez lister les répertoires les plus récemment modifiés dans un répertoire donné, vous pouvez combiner ls avec sort et head :

$ ls -ldtr */ | tail -n 10

Cette commande liste tous les répertoires (*/), les trie par date de modification (-t) de manière ascendante (-r), puis utilise tail -n 10 pour sélectionner les dix dernières lignes de la sortie, ce qui correspond aux dix répertoires les plus récemment modifiés.

Afficher les fichiers d’un répertoire modifiés dans une plage de dates spécifique

Si vous voulez lister les fichiers d’un répertoire qui ont été modifiés dans une plage de dates spécifique, vous pouvez utiliser find avec ls et grep :

$ find . -type f -newermt YYYY-MM-DD ! -newermt YYYY-MM-DD -exec ls -l {} \;

Remplacez YYYY-MM-DD par les dates de début et de fin de votre plage de dates. Cette commande recherchera les fichiers dans le répertoire courant (.) qui ont été modifiés entre les deux dates spécifiées, puis utilise ls -l pour les lister en mode long.

Ces cas complexes mettent en évidence la puissance de la combinaison de différentes commandes Unix pour répondre à des besoins spécifiques en matière de gestion des fichiers et des répertoires.

Conclusion

La commande ls est un outil essentiel pour la gestion des fichiers et des répertoires dans les systèmes Unix et Linux. En comprenant les différentes options disponibles, vous pouvez personnaliser la sortie de ls pour répondre à vos besoins spécifiques de navigation et d’organisation des fichiers. N’hésitez pas à consulter le manuel de ls (man ls) pour découvrir d’autres options et fonctionnalités disponibles.

Autres articles

Différence entre Ubuntu et Debian : Comprendre...
Les distributions Linux offrent une pléthore d'options pour les utilisateurs...
Read more
Guide complet sur l'utilisation de la commande...
La détection et la résolution des problèmes réseau peuvent être...
Read more
Comment créer et gérer des tâches Cron...
Les tâches Cron sont un élément essentiel de la gestion...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *