Lorsque l’utilisateur exécute une commande dans un shell interactif Linux, la sortie s’affiche dans le terminal texte. Cependant, il existe des moyens de modifier ce comportement en utilisant des commandes shell supplémentaires connectées dans un pipeline.
La commande tee lit l’entrée standard (stdin) et l’écrit à la fois sur la sortie standard (stdout) et dans un ou plusieurs fichiers. tee fait généralement partie d’un pipeline, et un nombre quelconque de commandes peuvent la précéder ou la suivre.
Dans ce tutoriel, vous apprendrez à utiliser la commande tee sous Linux pour gérer la sortie d’une commande.
La syntaxe de la commande tee
Comme expliqué précédemment la commande tee lit l’entrée standard et l’écrit à la fois dans la sortie standard et dans un fichier.
C’est une commande pratique pour rediriger les résultats d’une commande dans un fichier tout en affichant la sortie à l’écran.
Généralement, on l’utilise dans les script bash.
La syntaxe est la suivante :
[commande] | tee [options] <nom du fichier>
Voici un exemple concret de l’utilisation de la commande tee.
On affiche les informations de l’interface réseau enp0s3 et on passe la sortie à tee en spécifiant le fichier exemple.txt :
ifconfig enp0s3|tee exemple.txt
La sortie de la commande ipconfig apparaît dans le terminal.
Et si on jète un coup au contenu du fichier, obtient aussi celle-ci :
cat exemple.txt
Ainsi tee affiche la sortie de la commande ipconfig, tout en la redirigeant vers un fichier.
Comment utiliser la commande tee avec des exemples
Ajouter au fichier donné sans l’écraser
L’écrasement du contenu du fichier est le comportement par défaut de la commande tee.
Utilisez l’argument -a (ou –append) pour ajouter la sortie de la commande à la fin du fichier.
[commande] | tee -a <nom du fichier>
Par exemple, ci-dessous on ajoute du contenu à la fin du fichier grâce à la commande echo.
Écriture dans plusieurs fichiers
Utilisez tee suivi d’un nombre quelconque de fichiers pour écrire la même sortie dans chacun d’eux :
[commande] | tee [options] <fichier1> <fichier2> ...
L’exemple ci-dessous montre l’écriture de la sortie de la commande echo dans deux fichiers :
Ajout de la sortie de la commande echo à deux fichiers à l’aide de tee.
La commande ls montre que tee a réussi à créer les fichiers exemple1.txt et exemple2.txt.
Masquer la sortie standard du terminal
Pour demander à tee de stocker la sortie de la commande dans un fichier et d’ignorer la sortie du terminal, utilisez la syntaxe suivante :
[commande] | tee [options] <nom du fichier> >/dev/null
Dans l’exemple ci-dessous, tee crée un fichier contenant les données de l’interface réseau, sans passer par la sortie standard :
Rediriger la sortie d’une commande vers une autre
tee ne doit pas nécessairement être la dernière commande du pipeline. Utilisez-la pour transférer la sortie vers une autre commande :
[commande] | tee [options] <nom du fichier> | [commande]
Dans l’exemple suivant, tee enregistre la sortie de la commande ls dans le fichier exemple.txt et transmet le contenu de ce fichier à la commande grep, qui trouve et affiche toutes les instances du mot “exemple” :
Ignorer les signaux d’interruptions
Passage de la sortie de la commande ls à la commande grep en utilisant tee
Ignorer les interruptions
Pour permettre à tee de se terminer correctement même après que la commande précédente ait été interrompue, ajoutez l’argument -i (ou –ignore-interrupts) :
[commande] | tee -i <nom du fichier>
L’exemple suivant montre Tee écrivant la sortie de la commande ping et terminant l’action avec succès même après que ping ait été interrompu avec Ctrl+C :
Utiliser tee avec sudo
Pour permettre à tee d’écrire dans un fichier appartenant à l’administrateur ou à un autre utilisateur, placez la commande sudo juste avant tee.
[command] | sudo tee [options] <nom du fichier>
L’exemple ci-dessous montre une tentative infructueuse d’écriture dans le fichier sudoex.txt appartenant à l’utilisateur root. Lorsque la commande sudo est ajoutée, l’opération se termine :
Diagnostiquer les erreurs d’écriture vers les non tubes
Pour demander à tee d’imprimer un message d’erreur lorsque le processus échoue, utilisez l’argument -p :
[commande] | tee -p <nom du fichier>
L’action par défaut de tee -p est de quitter et d’imprimer le message d’erreur immédiatement après avoir détecté l’erreur d’écriture sur un tube.
Pour modifier le comportement de la commande en cas d’erreur d’écriture, utilisez l’argument –output-error, suivi du mode spécifiant le comportement :
[commande] | tee --output-error=[mode] <nom du fichier>
Il existe quatre modes possibles :
- warn – diagnostique les erreurs d’écriture sur n’importe quelle sortie.
- warn-nopipe – diagnostique les erreurs d’écriture sur toute sortie non-pipe.
- exit – quitte en cas d’erreurs d’écriture sur n’importe quelle sortie.
- exit-nopipe – quitte en cas d’erreur d’écriture sur n’importe quelle sortie non pipée.
Liens
- Comment utiliser la commande xargs (avec des exemples)
- 12 exemples pour utiliser la commande cat sur Linux
- 6 exemples pour utiliser la commande tail sur Linux
- Comment utiliser la commande less sur Linux avec des exemples
- La commande cut de Linux : utilisation et exemples
- Comment utiliser la commande AWK avec des exemples
- Commande sed : utilisation et exemples
- 12 exemples de commandes grep sur Linux
- La commande TR : utilisations et exemples
- La commande echo : utilisations et exemples
- La commande sort Linux : utilisations et exemples
- La commande join Linux : utilisations et exemples
L’article Comment utiliser la commande tee avec des exemples est apparu en premier sur malekal.com.
0 Commentaires