Avec la commande tee, Linux offre la pos­si­bi­lité non seulement de sortir une entrée standard nor­ma­le­ment, mais aussi de l’écrire dans un ou plusieurs fichiers en plus. Cette commande constitue ainsi une solution utile pour la sau­ve­garde des résultats in­ter­mé­diaires, leur archivage ou l’analyse des sources d’erreurs.

Qu’est-ce que la commande Linux tee ?

Pour mieux com­prendre 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 fonc­tionne 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 si­mul­ta­nées.

Quelle est la fonction de la commande tee pour Linux ?

Le fichier sup­plé­men­taire dans lequel la commande Linux tee en­re­gistre les données lues peut être créé de nouveau si né­ces­saire. Vous pouvez également utiliser un fichier existant dont le contenu est ensuite supprimé et écrasé. L’uti­li­sa­tion de la commande tee est prin­ci­pa­le­ment motivée par la pos­si­bi­lité de conserver les résultats in­ter­mé­diaires dans un pipe Linux. Cela vous permet de les modifier ul­té­rieu­re­ment ou de re­cher­cher d’éven­tuelles erreurs. L’archivage est effectué ici en parallèle à la sortie réelle sans res­tric­tion 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’uti­li­sa­tion de la commande Linux est la com­bi­nai­son avec la commande du (Disc Usage, uti­li­sa­tion 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 in­for­ma­tions 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 com­pré­hen­sible. En même temps que la sortie standard, les in­for­ma­tions sont également ren­seig­nées et en­re­gis­trées dans le fichier texte disk_usage.txt. Ce fichier est créé au­to­ma­ti­que­ment.

Comment empêcher l’écra­se­ment du contenu d’un fichier ?

Si vous ne prenez pas d’autres pré­cau­tions, la commande Linux-tee écrasera les in­for­ma­tions contenues dans un fichier dès qu’elle sera réu­ti­li­sée et que ce fichier sera spécifié. Si vous voulez modifier ceci, utilisez sim­ple­ment 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 dif­fi­culté. Il vous suffit de les spécifier in­di­vi­duel­le­ment à 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 fonc­tionne par exemple comme suit :

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

Dans cet exemple, non seulement la sortie est en­re­gis­trée dans le document troisieme_fichier.txt, mais vous obtenez également des in­for­ma­tions sur le nombre de ca­rac­tè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é­ces­saire, si vous avez écrit dans un fichier avec des pri­vi­lè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’ex­ploi­ta­tion de type Unix, tels que Linux ou macOS, pour exécuter des pro­grammes avec des pri­vi­lèges élevés. Cette fonction est par­ti­cu­liè­re­ment utile lorsque vous souhaitez effectuer des tâches qui relèvent nor­ma­le­ment de la res­pon­sa­bi­lité de l’équipe d’ad­mi­nis­tra­tion.

Comment ignorer une in­ter­rup­tion lors de l’exécution de tee ?

L’option de ligne de commande -i vous permet d’ignorer un interrupt (une in­ter­rup­tion) lors de l’exécution de la commande tee sous Linux. Le signal d’in­ter­rup­tion s’affiche en cas contraire si vous appuyez sur [Ctrl] + [c]. Placez l’option ap­pro­priée im­mé­dia­te­ment après la commande tee :

command | tee -i file.out
bash
Aller au menu principal