Linux / Commande less : parcourir, rechercher et suivre un fichier texte
less est un lecteur interactif qui permet de parcourir un long texte dans les deux sens, d'y chercher un motif et de rejoindre une ligne précise. Ouvrez un fichier avec less FICHIER, utilisez Espace ou b pour changer d'écran et q pour quitter. Le lecteur n'a pas besoin de charger tout un fichier avant de commencer à l'afficher.
Le site officiel de less et sa page de manuel décrivent les fonctions présentées ici. Les touches peuvent être personnalisées et certaines options dépendent de la version ; consultez less --version et l'aide avec h dans le lecteur.
Ouvrir un fichier et se déplacer dans son contenu
La syntaxe habituelle est less [OPTION]... [FICHIER...]. L'exemple suivant crée un nouveau dossier de pratique et un journal de quatre-vingts lignes. Deux lignes contiennent ERREUR, aux positions vingt et soixante, pour permettre une recherche reproductible :
lab=$(mktemp -d "$HOME/less-lab.XXXXXX") || exit 1
i=1
while test "$i" -le 80; do
if test "$i" -eq 20 || test "$i" -eq 60; then
printf 'ligne %03d : ERREUR de demonstration\n' "$i"
else
printf 'ligne %03d : service disponible\n' "$i"
fi
i=$((i + 1))
done > "$lab/application.log"
less -N "$lab/application.log"
Dans un terminal interactif, le texte s'ouvre dans le lecteur avec un numéro en début de ligne grâce à -N. Les instructions suivantes sont des touches à taper dans less, pas des commandes à entrer dans le shell :
| Touche | Action |
|---|---|
Espace / b |
Avance / recule d'un écran. |
| Entrée ou flèche bas / flèche haut | Se déplace ligne par ligne. |
g / G |
Rejoint le début / la fin du fichier. |
30g |
Rejoint la ligne trente. |
h |
Ouvre le rappel des commandes. |
q |
Quitte le lecteur et revient au shell. |
À la fin, une indication comme (END) peut apparaître. Elle signale la fin de l'entrée, pas un blocage. Appuyez sur g pour revenir au début ou sur q pour terminer la lecture. Après la sortie, le journal de pratique reste disponible et conserve son contenu.
Rechercher vers l'avant et répéter le bon sens de recherche
Depuis le début du fichier, tapez /ERREUR puis Entrée. Le lecteur doit rejoindre une ligne correspondante, ici celle numérotée vingt. Appuyez sur n pour continuer dans le même sens et atteindre la correspondance située à la ligne soixante. N répète la recherche dans le sens inverse.
Pour commencer une recherche vers le haut, utilisez ?ERREUR puis Entrée. Après cette recherche arrière, n continue vers le haut : son sens dépend donc de la recherche précédente. Les motifs sont normalement des expressions régulières ; un caractère comme . peut avoir un rôle spécial. Consultez l'aide pour les commandes qui permettent une recherche littérale si vous cherchez du texte contenant ces signes.
Avec -i, une recherche sans lettre majuscule ignore la casse ; dès que le motif contient une majuscule, elle redevient sensible à la casse. -I ignore toujours la casse. Quittez puis rouvrez le fichier avec l'option voulue pour comparer les résultats :
less -i "$lab/application.log"
Dans ce mode, /erreur doit retrouver les lignes écrites avec ERREUR. Sans -i ni autre réglage de recherche, le même motif minuscule ne correspond pas à ces majuscules. Ne confondez pas une absence de correspondance due à la casse avec une absence de l'événement recherché.
Lire les lignes longues et conserver une couleur choisie
-S coupe l'affichage des lignes à la largeur du terminal au lieu de les replier. Le texte caché à droite reste dans le fichier et peut être atteint avec les flèches horizontales. Associé à -N, ce mode convient à des colonnes de journaux ou à des fichiers de configuration :
less -NS "$lab/application.log"
Quittez et rouvrez sans -S pour retrouver le repli des lignes. L'option change la présentation et ne tronque pas le contenu enregistré. Les raccourcis et le déplacement horizontal exact dépendent aussi de la configuration du terminal.
Pour une sortie dont vous contrôlez l'origine, vous pouvez demander au producteur de conserver sa couleur, puis autoriser les séquences prises en charge par -R :
grep --color=always -n 'ERREUR' "$lab/application.log" | less -R
Vous devez voir les deux lignes correspondantes, avec la couleur si le terminal et sa configuration le permettent. -R n'autorise qu'un ensemble limité de séquences, notamment des couleurs ANSI et certains liens de terminal selon la version. Il ne faut pas le remplacer machinalement par -r, qui laisse passer plus largement les caractères de contrôle et peut perturber l'affichage.
Suivre un fichier qui grandit puis reprendre la recherche
+F lance le lecteur dans le mode qui attend de nouveaux octets à la fin du fichier. Pour observer le mécanisme dans le même terminal, ce bloc planifie l'ajout d'une ligne après trois secondes dans le seul journal de pratique, puis commence son suivi :
(sleep 3; printf 'nouvelle ligne : service relance\n' >> "$lab/application.log") &
less +F "$lab/application.log"
La nouvelle ligne doit apparaître lorsque le fichier grandit. Avec le comportement normal, appuyez sur Ctrl+C pour arrêter l'attente et retrouver les commandes de navigation, puis sur q pour quitter. L'option -K, si elle a été configurée, peut modifier l'effet de l'interruption ; vérifiez les options de votre environnement si le lecteur quitte directement.
Un journal réel peut être renommé ou remplacé pendant une rotation. Le suivi du fichier ouvert et le suivi de son nom ne sont alors pas toujours équivalents. Pour un service utilisant le journal de systemd, son outil de consultation peut être plus adapté ; pour les règles de suivi d'un fichier texte, la commande tail et le suivi des journaux fournit une comparaison utile.
Distinguer fichier, flux et extraction automatique
less lit aussi l'entrée standard d'un tube. Il peut conserver des données déjà lues pour permettre la navigation, mais une entrée longue ou qui ne se termine pas n'est pas identique à un fichier dont la fin est déjà connue. Rejoindre la fin avec G peut obliger à lire davantage de données ou à attendre la fin du flux.
Le lecteur est destiné à l'exploration humaine. Pour une extraction déterministe dans un script, utilisez un outil de traitement adapté ; la commande head extrait par exemple le début. La commande more offre une lecture plus simple par pages, tandis que cat envoie directement tout le contenu sur sa sortie.
Questions fréquentes
Comment quitter less après avoir lancé +F ?
Avec les réglages habituels, Ctrl+C arrête l'attente de nouvelles données et q quitte ensuite le lecteur. Vérifiez les options personnalisées si cette séquence se comporte différemment.
Pourquoi n ne va-t-il pas toujours vers le bas ?
n répète le sens de la dernière recherche. Après une recherche avec ?, il continue vers le haut ; N prend le sens opposé.
less doit-il lire tout le fichier avant de montrer la première page ?
Non. Il peut commencer à afficher sans lecture intégrale préalable. Certaines opérations, notamment rejoindre la fin d'un flux, nécessitent toutefois de lire davantage d'entrée.
La référence des commandes Linux par tâche regroupe les autres lecteurs et outils de texte.




