Linux

Comment rediriger la sortie standard et l’erreur vers un fichier sous Linux ?


Introduction à la redirection sous Linux

La redirection de la sortie standard et des erreurs est une fonctionnalité essentielle du système Linux, permettant aux utilisateurs de gérer l’affichage des commandes et les messages d’erreur. En comprenant comment utiliser les opérateurs de redirection, vous pouvez mieux contrôler l’exécution de vos commandes dans le terminal.

Les bases de la redirection

Linux utilise des descripteurs de fichiers pour gérer les flux d’entrée et de sortie. Par défaut, la sortie standard (stdout) a le descripteur de fichier 1, tandis que la sortie d’erreur standard (stderr) a le descripteur 2. Ces descripteurs peuvent être redirigés vers des fichiers pour enregistrer les résultats ou les messages d’erreur.

Comment rediriger la sortie standard et l’erreur vers un fichier sous Linux ?

Pour rediriger la sortie standard d’une commande vers un fichier, vous utilisez l’opérateur > suivi du nom du fichier. Par exemple :

commande > sortie.txt

Cela enverra la sortie de la commande dans le fichier sortie.txt, sans l’afficher sur le terminal. Si vous utilisez l’opérateur >>, la sortie sera ajoutée à la fin du fichier au lieu de l’écraser :

commande >> sortie.txt

Les erreurs standard et leur redirection

Pour rediriger les erreurs, vous devez utiliser le descripteur de fichier 2. La syntaxe est la suivante :

commande 2> erreurs.txt

Cette commande envoie les messages d’erreur dans le fichier erreurs.txt. Pour combiner la sortie standard et les erreurs dans le même fichier, vous pouvez utiliser :

commande > sortie.txt 2>&1

Dans ce cas, 2>&1 signifie que stderr (2) est redirigé vers le même endroit que stdout (1).

A lire :  Quel est le nom usuel du premier processus que le noyau Linux exécute indépendamment de lui-même ?

Ajouter des informations aux fichiers existants

Si vous souhaitez ajouter à un fichier existant au lieu de le remplacer, utilisez l’opérateur >> pour la sortie standard et 2>> pour les erreurs. Par exemple :

commande >> sortie.txt 2>> erreurs.txt

Cette commande ajoute la sortie standard à sortie.txt et les erreurs à erreurs.txt.

Utilisation de l’opérateur tee

L’opérateur tee permet de sauvegarder la sortie standard dans un fichier tout en la affichant en même temps dans le terminal. Par exemple :

commande | tee sortie.txt

Si vous souhaitez ajouter à un fichier avec tee, utilisez l’option -a :

commande | tee -a sortie.txt

FAQ

1. Quelle est la différence entre > et >> ?

L’opérateur > écrase le contenu d’un fichier si celui-ci existe, tandis que l’opérateur >> ajoute la nouvelle sortie à la fin du fichier sans supprimer son contenu existant.

2. Comment puis-je rediriger à la fois stdout et stderr vers un fichier ?

Vous pouvez rediriger à la fois stdout et stderr vers le même fichier en utilisant la syntaxe suivante : commande > fichier.txt 2>&1.

3. Que se passe-t-il si je redirige stdout et stderr vers le même fichier ?

Lorsque vous redirigez les deux flux vers le même fichier, cela peut entraîner un mélange de la sortie et des messages d’erreur, car stdout est mis en mémoire tampon tandis que stderr ne l’est pas. Cela peut rendre la lecture du fichier difficile.