Commande tee sous Linux

Avec la commande tee, Linux offre la possibilité non seulement de sortir une entrée standard normalement, mais aussi de l’écrire dans un ou plusieurs fichiers en plus. Cette commande constitue ainsi une solution utile pour la sauvegarde des résultats intermédiaires, leur archivage ou l’analyse des sources d’erreurs.

Qu’est-ce que la commande Linux tee ?

Pour mieux comprendre ce qu’est la commande Linux tee et ses effets, il suffit de se pencher sur son nom. Elle tire son nom de la pièce en T d’une conduite qui ressemble à une fourche – et c’est ainsi que fonctionne la commande pratique : d’une part, elle lit à partir de l’entrée standard « stdin », utilisée par exemple avec le clavier ou un programme, et renvoie la lecture via la sortie standard « stdout ». En plus de la sortie standard, par exemple un écran, la commande tee de Linux écrit d’autre part la sortie dans un ou plusieurs fichiers. Une seule entrée donne donc lieu à deux ou plusieurs sorties simultanées.

Quelle est la fonction de la commande tee pour Linux ?

Le fichier supplémentaire dans lequel la commande Linux tee enregistre les données lues peut être créé de nouveau si nécessaire. Vous pouvez également utiliser un fichier existant dont le contenu est ensuite supprimé et écrasé. L’utilisation de la commande tee est principalement motivée par la possibilité de conserver les résultats intermédiaires dans un pipe Linux. Cela vous permet de les modifier ultérieurement ou de rechercher d’éventuelles erreurs. L’archivage est effectué ici en parallèle à la sortie réelle sans restriction technique ni aucun obstacle.

Comment utiliser la commande ?

La syntaxe de base de la commande linux tee est toujours la même et ressemble à ceci :

tee [OPTIONS] [FILE]
bash

Il est important de toujours spécifier au moins un fichier (FILE) dans lequel il est prévu d’écrire la sortie.

Un exemple simple d’utilisation de la commande Linux est la combinaison avec la commande du (Disc Usage, utilisation du disque). Elle indique quelle partie d’un disque dur est occupée. La commande complète se présente comme suit :

du -h | tee disk_usage.txt
bash

Vous obtenez des informations sur la quantité d’espace utilisée sur votre disque dur. L’option « -h » (human readable, lisible par l’humain) permet de spécifier l’espace occupé dans un format compréhensible. En même temps que la sortie standard, les informations sont également renseignées et enregistrées dans le fichier texte disk_usage.txt. Ce fichier est créé automatiquement.

Comment empêcher l’écrasement du contenu d’un fichier ?

Si vous ne prenez pas d’autres précautions, la commande Linux-tee écrasera les informations contenues dans un fichier dès qu’elle sera réutilisée et que ce fichier sera spécifié. Si vous voulez modifier ceci, utilisez simplement l’option de ligne de commande -a. Elle permet de s’assurer que le nouveau contenu est ajouté. Dans l’exemple ci-dessus, cela se présente comme suit :

du -h | tee -a disk_usage.txt
bash

Comment utiliser la commande tee pour écrire dans plusieurs fichiers en même temps ?

Il est possible d’écrire la sortie dans plusieurs fichiers sans grande difficulté. Il vous suffit de les spécifier individuellement à cet effet et de les séparer par des espaces, comme dans l’exemple suivant :

du -h | tee disk_usage1.txt disk_usage2.txt disk_usage3.txt
bash

Comment rediriger la sortie en tant qu’entrée ?

Cependant, la commande Linux tee ne vous permet pas seulement d’écrire la sortie en parallèle dans autant de fichiers que vous le souhaitez. Vous pouvez également rediriger la sortie vers d’autres commandes comme entrée. Ceci fonctionne par exemple comme suit :

ls file* | tee troisieme_fichier.txt | wc -m
bash

Dans cet exemple, non seulement la sortie est enregistrée dans le document troisieme_fichier.txt, mais vous obtenez également des informations sur le nombre de caractères contenus dans le fichier.

Comment utiliser la commande Linux tee avec sudo ?

Vous pouvez également utiliser la commande tee en relation avec sudo. Ceci est utile, voire nécessaire, si vous avez écrit dans un fichier avec des privilèges root. Si vous n’utilisez pas sudo dans un tel cas, seul un message d’erreur vous est affiché. Voici un exemple de la structure de cette commande :

echo « Exemple » | sudo tee -a root_document.txt
bash
Note

sudo est une commande utilisée dans des systèmes d’exploitation de type Unix, tels que Linux ou macOS, pour exécuter des programmes avec des privilèges élevés. Cette fonction est particulièrement utile lorsque vous souhaitez effectuer des tâches qui relèvent normalement de la responsabilité de l’équipe d’administration.

Comment ignorer une interruption lors de l’exécution de tee ?

L’option de ligne de commande -i vous permet d’ignorer un interrupt (une interruption) lors de l’exécution de la commande tee sous Linux. Le signal d’interruption s’affiche en cas contraire si vous appuyez sur [Ctrl] + [c]. Placez l’option appropriée immédiatement après la commande tee :

command | tee -i file.out
bash