La commande tee vous permet de lancer une commande complexe dans votre terminal, de voir défiler des dizaines de lignes de résultats cruciaux et de les sauvegarder dans un fichier. Elle agit comme un embranchement sur une canalisation : elle laisse l’eau (vos données) couler vers sa destination habituelle tout en en détournant une partie vers un réservoir (votre fichier).
- Apprenez lancer une commande depuis le terminal et sauvegarder sa sortie sur fichier grâce à tee.
- Gagnez en sérénité lors de vos tâches longues grâce à une méthode de surveillance visuelle couplée à un archivage automatique sans faille.
- Optimisez votre productivité en automatisant la copie de vos données vers plusieurs destinations simultanément.
Comprendre le fonctionnement de la commande tee depuis le terminal est une étape essentielle. Dans ce tutoriel, nous allons décomposer ensemble son fonctionnement, explorer ses options et voir comment elle peut transformer votre manière de travailler au quotidien, que vous soyez un curieux du dimanche ou un futur administrateur système.
- Qu'est-ce que la commande tee ?
- La syntaxe de base pour bien démarrer
- Pourquoi utiliser tee plutôt qu'une simple redirection ?
- L'astuce du mode ajout pour préserver vos données
- Écrire dans plusieurs fichiers simultanément
- Le super-pouvoir de tee avec les privilèges sudo
- Ignorer les interruptions pour un travail serein
- Combiner tee avec d'autres outils : la puissance du pipeline
- La gestion des erreurs : ne rien laisser passer
- Les 5 questions les plus fréquentes sur la commande tee ❓
- Tee, un pas de géant vers l'autonomie
Qu’est-ce que la commande tee ?
Pour comprendre l’utilité de cet outil, il faut d’abord saisir le concept de flux de données dans un terminal. En informatique, une commande produit généralement une sortie standard que l’on appelle le STDOUT. Par défaut, cette sortie s’affiche sur votre écran. Si vous utilisez une redirection classique avec le symbole de la flèche, vous envoyez le résultat directement dans un fichier, mais votre écran devient désespérément vide. Vous ne savez plus ce qui se passe pendant que la machine travaille.
C’est ici que tee entre en scène de façon magistrale. Son nom vient de la forme de la lettre T, qui évoque un raccord de plomberie. Imaginez un tuyau qui arrive par le bas et qui se divise en deux branches horizontales. La commande reçoit des données en entrée, les affiche sur votre terminal pour que vous puissiez suivre l’évolution en direct, et en écrit simultanément une copie dans un ou plusieurs fichiers. C’est le don d’ubiquité appliqué à la ligne de commande.
L’avantage majeur réside dans la surveillance. Si vous effectuez une mise à jour système ou une installation logicielle qui dure dix minutes, vous voulez voir les messages d’erreur éventuels en temps réel. En même temps, conserver une trace écrite (un log) est indispensable pour analyser ce qui s’est passé plus tard. Sans cet outil, vous seriez obligé de choisir entre voir et archiver.
La syntaxe de base pour bien démarrer
Abordons maintenant la structure de la commande. Comme pour la plupart des outils sous Linux ou macOS, la syntaxe est pensée pour être concise. La forme la plus simple s’écrit en utilisant un « pipe », ce petit trait vertical accessible souvent via la touche Alt Gr et 6 sur votre clavier. Le pipe sert à passer le relais entre deux commandes.
La structure type ressemble à ceci :
commande_initiale | tee nom_du_fichier.txt.Prenons un exemple très simple que vous pouvez tester immédiatement. Si vous tapez la commande qui liste les fichiers de votre dossier, à savoir la commande ls, et que vous voulez garder une trace de cette liste dans un document nommé inventaire.txt, vous écrirez simplement :
ls | tee inventaire.txt. En validant, vous verrez la liste de vos dossiers s’afficher normalement sous vos yeux, mais si vous ouvrez ensuite le fichier inventaire.txt, vous constaterez qu’il contient exactement la même chose.
Il est important de noter que par défaut, si le fichier inventaire.txt existait déjà, la commande tee va l’écraser impitoyablement pour le remplacer par le nouveau contenu.
C’est un comportement standard qu’il faut garder en tête pour éviter de perdre des notes importantes. Heureusement, nous verrons un peu plus loin qu’il existe un moyen très simple d’ajouter du texte à la suite d’un fichier existant plutôt que de tout effacer.
Pour ceux qui débutent avec le terminal :
- Liste des commandes essentielles du terminal
- La commande AWK : traitement texte
- La commande CHMOD : gérer les permissions
- La commande GREP : recherche texte
- La commande NANO : éditeur fichier
Pourquoi utiliser tee plutôt qu’une simple redirection ?
Vous pourriez me rétorquer qu’une simple flèche vers la droite suffit largement pour créer un fichier. C’est vrai, mais la différence est fondamentale en termes d’expérience utilisateur.
La redirection classique est une redirection exclusive. Elle coupe le lien avec votre écran. Dans un contexte professionnel, c’est un peu comme si vous demandiez à un collègue de rédiger un rapport mais qu’il s’enfermait dans un bureau sans fenêtre : vous ne saurez s’il a réussi qu’une fois qu’il sortira, peut-être une heure plus tard.
L’utilisation de tee dans votre terminal apporte une visibilité totale. Imaginez que vous fassiez une sauvegarde de votre base de données. En utilisant cet outil, vous voyez les messages de succès ou d’avertissement défiler, ce qui vous rassure sur le bon déroulement de l’opération, tout en sachant que chaque ligne est gravée dans votre fichier de journalisation.
Pour bien comprendre l’utilité de tee, prenez l’exemple d’un administrateur système qui lance un script de nettoyage sur un serveur distant en utilisant une redirection classique vers un fichier log. Pensant que tout se passe bien… À son retour, le fichier log fait plusieurs gigaoctets car une erreur s’est produite en boucle, saturant tout l’espace disque du serveur. S’il avait utilisé tee, il aurait vu immédiatement les messages d’erreur s’emballer sur son écran et aurait pu stopper le massacre en deux secondes. C’est parfois la différence entre une petite correction et une après-midi de crise.
L’astuce du mode ajout pour préserver vos données
Comme nous l’avons évoqué, le comportement de base consiste à écraser le contenu existant. C’est souvent ce que l’on veut pour un rapport, mais c’est catastrophique si vous tenez un journal de bord de vos activités sur plusieurs jours. Pour remédier à cela, il existe une option indispensable : l’option -a, comme « append » (ajouter en anglais).
La syntaxe devient alors :
commande | tee -a journal.txt.Grâce à cette petite lettre supplémentaire, la commande va d’abord lire le fichier existant, se placer tout à la fin, et commencer à écrire les nouvelles données à la suite du texte déjà présent.
C’est l’outil parfait pour créer ce qu’on appelle des « logs » chronologiques. Vous pouvez ainsi lancer plusieurs commandes différentes tout au long de votre session et retrouver l’historique complet de vos résultats dans un seul et même document, bien classé.
Écrire dans plusieurs fichiers simultanément
L’une des fonctionnalités les plus méconnues et pourtant les plus puissantes de cet outil est sa capacité à cloner la sortie vers plusieurs destinations à la fois. Si vous travaillez sur un projet collaboratif, vous aurez peut-être besoin de garder une copie locale de vos résultats, mais aussi d’envoyer ces mêmes résultats sur un dossier partagé avec votre équipe.
Au lieu de faire plusieurs copier-coller ou de relancer la commande, vous pouvez simplement lister les fichiers les uns après les autres. Par exemple :
commande | tee fichier1.txt fichier2.txt fichier3.txt. Votre terminal affichera toujours le résultat une seule fois, mais les trois fichiers seront créés ou mis à jour instantanément avec le même contenu. C’est un gain de temps phénoménal et cela garantit que toutes vos copies sont strictement identiques, éliminant ainsi le risque d’erreur humaine.
Le super-pouvoir de tee avec les privilèges sudo
S’il y a bien une situation où les débutants s’arrachent les cheveux sur le terminal, c’est lorsqu’ils essaient de modifier un fichier système. Imaginez que vous deviez ajouter une ligne de configuration dans un fichier protégé, situé dans un dossier racine.
Naturellement, vous pourriez tenter une redirection classique précédée de la commande sudo, comme ceci :
sudo echo "ma_config" > /etc/fichier_protege.confEt là, c’est le drame : le système vous renvoie une erreur de type « Permission denied ».
Pourquoi ? Parce que si la commande echo est bien lancée avec les droits de l’administrateur, la redirection (le symbole >) est gérée par votre propre session utilisateur, qui elle, n’a pas le droit d’écrire dans ce dossier sensible. C’est un piège classique de la ligne de commande.

Des formations informatique pour tous !
Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…
Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.
Découvrez mes formations Qui suis-je ?C’est là que notre outil du jour brille par son ingéniosité. En utilisant la syntaxe suivante :
echo "ma_config" | sudo tee /etc/fichier_protege.confVous contournez le problème. Ici, c’est la commande tee elle-même qui reçoit les privilèges élevés. Elle reçoit le texte de la part d’echo et, grâce au sudo placé juste devant elle, elle a l’autorisation légitime d’ouvrir le fichier protégé et d’y inscrire les données.
C’est une méthode beaucoup plus propre et sécurisée que d’ouvrir un éditeur de texte complet juste pour une ligne.
Ignorer les interruptions pour un travail serein
Parfois, vous lancez une tâche de fond qui va durer des heures. Dans le monde informatique, il arrive que des signaux d’interruption soient envoyés (comme un utilisateur qui appuie par erreur sur Ctrl+C). Si vous ne voulez pas que votre processus d’écriture soit stoppé net au milieu de sa tâche, l’outil dispose d’une option robuste : -i (pour ignore interrupts).
En tapant :
commande | tee -i fichier.txtVous demandez au programme de continuer son travail d’écriture même si un signal d’interruption est détecté. C’est une sécurité supplémentaire pour s’assurer que vos précieux fichiers de log ne soient pas corrompus ou tronqués par une fausse manipulation. C’est un peu comme mettre une ceinture de sécurité supplémentaire lors d’un long trajet sur l’autoroute du code.
Combiner tee avec d’autres outils : la puissance du pipeline
Le véritable génie du terminal réside dans la combinaison des forces. La commande tee n’est pas une île déserte ; elle s’intègre parfaitement dans des chaînes de traitement complexes. Voyons un cas concret : vous voulez chercher tous les fichiers qui contiennent le mot « erreur » dans un dossier, afficher les résultats, mais aussi compter combien il y en a et sauvegarder ce compte.
Vous pourriez construire une ligne comme celle-ci :
grep -r "erreur" ./logs | tee -a rapport_erreurs.txt | wc -lDécomposons ensemble cette étape :
- La première partie cherche le mot dans vos dossiers.
- Le premier pipe envoie le résultat à tee.
- Ce dernier affiche le contenu sur la sortie standard tout en l’écrivant dans « rapport_erreurs.txt ».
- Le second pipe prend ce que tee a affiché et l’envoie à la commande
wc -l, qui va compter les lignes.
Au final, vous voyez sur votre écran le nombre total d’erreurs, mais votre fichier contient le détail complet de ces erreurs. C’est une efficacité chirurgicale que peu d’outils graphiques peuvent égaler avec autant de simplicité.
La gestion des erreurs : ne rien laisser passer
Il existe un petit secret que les experts utilisent souvent. Par défaut, la commande tee ne capture que la sortie standard (le succès). Si votre commande initiale échoue, les messages d’erreur (appelés STDERR) s’afficheront sur l’écran mais ne seront pas enregistrés dans votre fichier. Pour un guide complet, il est crucial de savoir comment capturer l’intégralité du flux.
Pour ce faire, on utilise une redirection spéciale avant le pipe : 2>&1. Cela signifie « renvoie les erreurs vers le flux normal ». Votre commande ressemblera alors à :
ma_commande 2>&1 | tee journal_complet.txtAvec cette astuce, vous avez la certitude que tout ce qui s’est affiché sur votre terminal, que ce soit une réussite ou un échec cuisant, est précieusement conservé dans votre archive.
Récapitulatif des commandes tee
| Commande | Utilisation | Exemple |
|---|---|---|
tee fichier.txt | Affiche la sortie et l’écrit dans un fichier | ls | tee liste.txt |
tee -a fichier.txt | Ajoute la sortie à un fichier existant | date | tee -a log.txt |
tee fichier1 fichier2 | Écrit dans plusieurs fichiers | ls | tee a.txt b.txt |
commande | tee fichier.txt | Duplique la sortie standard | ps aux | tee process.txt |
tee >(commande) | Redirige la sortie vers une autre commande | echo test | tee >(wc -c) |
sudo commande | tee fichier | Écrit dans un fichier protégé | echo test | sudo tee /etc/test.conf |
tee /dev/tty | Force l’affichage dans le terminal | make | tee /dev/tty |
tee /dev/null | Ignore l’écriture dans un fichier | ls | tee /dev/null |
tee fichier.log > /dev/null | Écrit sans afficher à l’écran | commande | tee log.txt > /dev/null |
tee -i fichier.txt | Ignore les interruptions | longue_cmd | tee -i log.txt |
tee --help | Affiche l’aide | tee --help |
tee --version | Affiche la version | tee --version |
Les 5 questions les plus fréquentes sur la commande tee ❓
À quoi sert exactement la commande tee ?
La commande tee permet de dupliquer la sortie d’une commande :
elle l’affiche dans le terminal tout en l’écrivant dans un ou plusieurs fichiers.
C’est idéal pour garder une trace (log) sans perdre l’affichage en direct.ls | tee fichiers.txt
Quelle est la différence entre > et tee ?
- > redirige la sortie uniquement vers un fichier
teeécrit dans le fichier ET dans le terminal
ls > fichiers.txt # pas d'affichage ls | tee fichiers.txt # affichage + fichier
tee est donc bien plus pratique pour le debug et l’apprentissage.
Pourquoi sudo commande > fichier ne fonctionne pas ?
Parce que la redirection > est gérée avant sudo.
Le fichier est donc écrit sans les droits administrateur.
La solution correcte :commande | sudo tee fichier
C’est un cas d’usage classique de tee.
Comment ajouter du contenu sans écraser le fichier ?
Il faut utiliser l’option -a (append) :date | tee -a log.txt
Sans -a, le fichier est écrasé à chaque fois.
Peut-on écrire dans plusieurs fichiers en même temps ?
Oui, et c’est une des forces de tee :ls | tee a.txt b.txt c.txt
👉 La sortie est :
- affichée dans le terminal
- copiée dans plusieurs fichiers simultanément
Tee, un pas de géant vers l’autonomie
Apprendre à utiliser la commande tee dans votre terminal, c’est un peu comme passer de la simple lecture à l’écriture active. Vous ne vous contentez plus de subir les informations qui défilent sur votre écran ; vous devenez le chef d’orchestre de vos données. En maîtrisant cet outil, vous gagnez en visibilité, en sécurité et surtout en sérénité lors de vos sessions de travail.
N’oubliez jamais que la console n’est pas un ennemi à dompter, mais un allié à apprivoiser. Chaque petite commande comme celle-ci est une brique supplémentaire dans votre édifice de compétences numériques. Prenez le temps d’expérimenter, faites des erreurs, testez les options -a ou -i, et vous verrez que très vite, vous ne pourrez plus vous passer de ce fameux « raccord en T » qui rend la gestion des fichiers si fluide.
Le voyage dans le monde Linux, Unix et macOS est vaste, mais avec des outils aussi polyvalents, vous êtes désormais armé pour affronter des configurations de plus en plus ambitieuses. Bonne exploration et que vos flux de données soient toujours bien dirigés !

Fondateur de l’agence Créa-troyes, affiliée France Num
Intervenant en Freelance.
Contactez-moi
