Êtes-vous à la recherche d’un moyen d’organiser vos fichiers et d’effectuer des opérations sur eux ? Il existe de nombreuses situations en programmation où vous devez trier des données, comme une liste de fichiers. Trier les fichiers avec les commandes Bash sort
et ls
vous aidera à maintenir l’ordre des choses.
Dans ce tutoriel, vous apprendrez les fondamentaux du tri des fichiers et du contenu des fichiers.
C’est parti pour le tri !
Prérequis
Ce tutoriel utilise Ubuntu 20.04, mais n’importe quelle distribution Linux fera l’affaire.
Trier les fichiers alphabétiquement en Bash
Il existe de nombreuses façons de trier les fichiers sous Linux, mais concentrons-nous sur la manière la plus courante, à savoir trier les fichiers alphabétiquement.
Lancez votre terminal et exécutez la commande ls -l
ci-dessous pour obtenir une liste de fichiers dans un répertoire par ordre croissant. Le drapeau -l
indique à la commande ls
d’afficher la sortie retournée sous forme de liste longue.

Par défaut, la commande
ls
liste les fichiers par ordre croissant. Pour inverser l’ordre de tri, passez le drapeau-r
à la commandels -l
, comme ceci :ls -lr
. Passer le drapeau-r
à la commandels -l
s’applique aux autres exemples de ce tutoriel.
Utilisation de Bash Sort pour trier les fichiers par taille
Au lieu de trier les fichiers par ordre alphabétique, vous pouvez vouloir trier les fichiers par taille de fichier. Trier les fichiers par taille est pratique lorsque vous souhaitez prioriser l’affichage des fichiers les plus petits ou les plus grands dans une liste.
Pour trier les fichiers par taille, passez le drapeau -S
pour indiquer à la commande ls
de trier la liste des fichiers par taille de fichier.
Exécutez la commande ci-dessous pour répertorier les fichiers (ls
) triés par taille de fichier dans un format de liste longue (-lS
).
Vous pouvez voir ci-dessous que la commande a trié les fichiers par taille dans l’ordre décroissant (du plus grand au plus petit).
Pour inverser l’ordre de tri (du plus petit au plus grand), ajoutez le drapeau
-r
, comme ceci :ls -lSr

Trier les fichiers par heure de modification via le tri Bash
En passant au tri des fichiers par taille, vous pourriez rencontrer un cas d’utilisation où vous avez besoin de trier les fichiers par l’heure à laquelle ils ont été modifiés. Par exemple, vous avez oublié le nom du fichier que vous avez créé, et vous ne vous souvenez que de l’heure à laquelle vous avez modifié le fichier.
Exécutez la commande ci-dessous où le paramètre -t
indique à la commande ls
de trier les fichiers par heure de modification.

Trier les fichiers par extension de fichier
Lorsque vous recherchez un fichier avec un type de fichier particulier, trier les fichiers par extension de fichier est la solution idéale.
Exécutez la commande ci-dessous pour répertorier les fichiers (ls
) dans le répertoire de travail et les trier en fonction de leurs extensions (-lx
).
Remarquez ci-dessous que la commande a trié les fichiers avec la même extension dans l’ordre croissant en fonction de leurs noms.

Trier le contenu dans un fichier texte
Désormais, vous avez appris différentes méthodes pour trier les fichiers dans un répertoire. En déplaçant votre attention de la commande ls
, essayez d’exécuter la commande sort
. La commande sort
trie le contenu du fichier en fonction du drapeau que vous ajouterez. Mais d’abord, vous avez besoin d’un fichier avec du contenu que vous allez modifier.
Exécutez la commande ci-dessous pour créer un fichier texte nommé ~/data/fruits.txt qui contient des noms de fruits. Le drapeau -e
permet d’interpréter le caractère d’échappement pour écrire chaque mot sur une nouvelle ligne (\n
).
Exécutez maintenant la commande ci-dessous pour trier
chaque mot dans fruits.txt
.
Ci-dessous, vous pouvez voir que le contenu du fichier est trié par ordre croissant.

Sans aucun drapeau, la commande
sort
trie le contenu du fichier par ordre croissant par défaut. Pour inverser l’ordre de tri, ajoutez le drapeau-r
à la commande de tri, comme ceci :sort -r fruits.txt
. Le tri dans l’ordre inverse en ajoutant le drapeau-r
s’applique à d’autres exemples de ce tutoriel.
Trier une liste de nombres dans un fichier texte
La commande pour trier les nombres est similaire au tri des textes dans un fichier, mais vous ajouterez le drapeau -n
. Créons d’abord un fichier pour illustrer comment trier numériquement le contenu d’un fichier.
Exécutez la commande ci-dessous pour créer un fichier nommé ~/data/scores.txt contenant des nombres aléatoires, chacun sur une nouvelle ligne.
Exécutez maintenant la commande ci-dessous pour trier
les nombres (-n
) dans le fichier ~/data/scores.txt.
Vous pouvez voir ci-dessous les numéros énumérés dans des lignes allant du plus petit au plus grand numéro.

Trier une liste de numéros de version dans un fichier texte
Peut-être avez-vous une liste de numéros de version dans un fichier texte que vous souhaitez trier. Si c’est le cas, l’ajout de l’option --version-sort
fera l’affaire.
Pour démontrer comment fonctionne l’option --version-sort
, créez d’abord un fichier texte.
Exécutez la commande ci-dessous pour créer un fichier texte nommé ~/data/versions.txt avec des numéros de version aléatoires répertoriés, chacun sur une nouvelle ligne (\n
).
Maintenant, exécutez la commande ci-dessous pour trier
les numéros de version (--version-sort
) dans le fichier versions.txt. L’option --field-separator
indique à la commande sort
que les chiffres dans chaque version sont séparés par un point (.
). Vous pouvez changer le séparateur de champ par n’importe quel caractère qui sépare les chiffres dans les versions répertoriées dans votre fichier texte.

Trier Bash pour Trouver et Trier les Fichiers par Extension de Fichier
Vous avez exécuté des commandes uniques (soit ls
soit sort
) dans les exemples précédents. Mais en programmation, vous devrez souvent utiliser deux commandes ou plus ensemble. Comment ? En créant un pipeline d’une commande à une autre.
Exécutez la commande ci-dessous pour trouver
tous les fichiers markdown (-iname "*.md"
) dans le répertoire de travail (.
), et triez-les par ordre alphabétique décroissant (sort -r
). Essayez de trouver et de trier d’autres fichiers en changeant "*.md"
par une autre extension de fichier.

Si vous préférez enregistrer la sortie triée dans un fichier texte plutôt que sur la sortie standard de la console, ajoutez l’option
--output
, comme ceci :find . -iname "*.md" | sort -r --output=sorted.txt
. L’option--output
indique à la commandesort
de créer un fichier de sortie pour la liste triée des fichiers.
Conclusion
L’objectif de cet article était de vous enseigner différentes façons de trier en utilisant des commandes Bash sur une machine Linux. Vous avez maintenant appris à trier la liste des fichiers et à trier le contenu des fichiers. De plus, vous devriez également savoir comment chaîner différentes commandes pour un tri de fichiers plus complexe.
Avec cette nouvelle connaissance comme point de départ, pourquoi ne pas créer des scripts pour automatiser les listes de fichiers et le tri du contenu des fichiers ?