Tutoriel Linux

Head sous Linux : inspecter un gros fichier sans l’ouvrir entièrement

Débutant3 min de lecture

Vous devez vérifier le début d’un fichier de log ou d’un export volumineux, mais vous ne voulez pas l’ouvrir dans un éditeur graphique ? La commande head affiche uniquement les premières lignes ou les premiers octets. Elle est rapide, adaptée aux fichiers très lourds et pratique pendant un diagnostic serveur.

Afficher les premières lignes

Par défaut, head affiche les dix premières lignes du fichier indiqué :

head /var/log/syslog

Pour choisir le nombre de lignes, utilisez l’option -n. Cette forme est la plus lisible dans un script ou une procédure :

head -n 30 /var/log/syslog
head -n 5 /var/log/auth.log

Sur les distributions qui utilisent systemd, vos droits peuvent être insuffisants pour certains journaux. Dans ce cas, ajoutez sudo uniquement si le fichier appartient à root ou si ses permissions l’exigent.

Lire les premiers octets

head ne se limite pas aux lignes. Avec -c, vous pouvez extraire un nombre précis d’octets, ce qui est utile pour vérifier l’en-tête d’un fichier ou examiner rapidement un format inconnu :

head -c 64 sauvegarde.bin
head -c 256 image.iso | od -An -tx1

Cette méthode ne cherche pas une fin de ligne. Sur un fichier binaire, la sortie peut donc contenir des caractères illisibles. Ce n’est pas une corruption du fichier, seulement une lecture brute du début de son contenu.

Traiter plusieurs fichiers

Vous pouvez fournir plusieurs chemins à la même commande :

head -n 15 /var/log/syslog /var/log/auth.log

La commande ajoute alors un en-tête avant chaque fichier pour éviter de mélanger les résultats. Pour lire tous les fichiers texte d’un dossier, utilisez un motif avec prudence :

head -n 5 logs/*.log

Si aucun fichier ne correspond au motif, le shell peut transmettre le motif tel quel à head et afficher une erreur. Vérifiez donc le chemin et le contenu du dossier avant de l’intégrer à un script automatisé.

Éviter les mauvaises surprises

head lit le fichier au moment de l’appel. Il ne suit pas les nouvelles lignes ajoutées ensuite. Pour surveiller un journal en direct, utilisez plutôt tail avec son mode -f.

Pour limiter la sortie dans un pipeline, combinez head avec les outils adaptés :

journalctl -b --no-pager | head -n 40
ls -lah /var/log | head -n 20

Le premier exemple récupère les premières lignes du journal du démarrage actuel. Le second permet de ne pas faire défiler toute la liste d’un répertoire. Dans un script, contrôlez aussi le code de sortie et évitez de masquer une erreur de lecture derrière un pipeline trop long.

Vérifier ce que vous lisez

Avant d’interpréter le résultat, identifiez le fichier et son type :

ls -lh /chemin/vers/fichier
file /chemin/vers/fichier
head -n 20 /chemin/vers/fichier

ls confirme notamment la taille et les permissions, tandis que file indique si le contenu ressemble à du texte, une archive ou un format binaire. Cette vérification évite de traiter un fichier compressé comme un journal lisible. Pour un fichier qui évolue pendant votre diagnostic, relancez head si vous voulez comparer le début après une rotation ou une modification.

La page de manuel de head détaille les variantes de syntaxe. Vous pouvez aussi consulter les guides LinuxEnCaja sur wc et file pour compléter l’inspection d’un fichier.

Tux examine le début d’un gros fichier sous Linux
Inspecter le début d’un gros fichier Linux sans l’ouvrir entièrement.