Blog / Article #146
tee sur Linux : personne ne sait utiliser, pourtant tee c'est bien

star

16 Octobre 2026
tee sur Linux

 tee ! Cette commande Linux qui sonne comme un accessoire de plomberie ou un sport olympique, mais qui, en réalité, est l’un de ces outils CLI sous-estimés que vous regretterez de ne pas avoir maîtrisés plus tôt. Si vous avez déjà passé 20 minutes à bidouiller des redirections de sortie pour logger un script tout en le surveillant en temps réel, tee est votre nouveau meilleur pote. Et si vous ne voyez pas de quoi je parle, préparez-vous à un déclic qui va vous faire dire : « Mais pourquoi personne ne m’a parlé de ça avant ? »

tee, c’est quoi ?

En termes simples, tee est une commande qui lit depuis l’entrée standard (stdin) et écrit simultanément vers la sortie standard (stdout) ET vers un ou plusieurs fichiers. Imaginez un tuyau qui se divise en deux : une partie de l’eau continue son chemin, l’autre est détournée pour remplir un seau. Sauf qu’ici, l’eau, c’est votre flux de données, et le seau, c’est un fichier de log, un backup, ou n’importe quoi d’autre qui vous évitera de pleurer plus tard.

La syntaxe de base est d’une simplicité déconcertante :

echo "Hello, world!" | tee output.txt

Résultat ? Hello, world! s’affiche dans votre terminal ET est écrit dans output.txt. Magique ? Non, juste pratique. Et contrairement à certaines solutions « modernes » qui promettent de révolutionner votre workflow avec 15 dépendances et une API REST, tee fait une seule chose, mais la fait bien. Pas de hype, pas de bullshit, juste de l’efficacité brute.

Pourquoi utiliser tee ? 

Si vous vous dites « Je peux faire ça avec > et >>, merci bien », vous avez techniquement raison. Mais vous passez aussi à côté de l’essentiel : tee permet de voir ce qui se passe en temps réel tout en sauvegardant le résultat. C’est la différence entre conduire les yeux bandés en espérant arriver à destination et, ben, conduire normalement.

Voici quelques cas d’usage où tee brille :

  • Debugging de scripts : Au lieu de lancer un script et de prier pour que les logs soient complets, utilisez tee pour afficher les sorties tout en les enregistrant. Exemple :
    ./mon_script.sh | tee debug.log
  • Sauvegarde de commandes longues : Vous lancez un docker build qui prend 10 minutes ? Ajoutez | tee build.log pour garder une trace, au cas où votre terminal déciderait de planter (ou que vous fermeriez accidentellement l’onglet).
  • Pipeline de données : Si vous traitez des données avec des commandes comme grep, awk ou sed, tee permet d’inspecter les étapes intermédiaires sans casser le flux. Exemple :
    cat data.txt | grep "error" | tee errors.txt | awk '{print $2}'
  • Ajout à un fichier existant : Avec l’option -a (append), tee devient encore plus utile pour ajouter des logs sans écraser le fichier précédent.
    echo "Nouvelle entrée" | tee -a logs.txt

Et si vous êtes du genre à aimer les trucs un peu tordus, sachez que tee peut aussi écrire vers plusieurs fichiers en une seule commande :

echo "Backup multiple" | tee backup1.txt backup2.txt

Les limites de tee 

Évidemment, tee n’est pas la solution à tous vos problèmes. Si vous gérez des flux de données massifs, écrire systématiquement vers un fichier peut ralentir les performances. Et si vous utilisez tee dans un script critique, assurez-vous que les permissions des fichiers cibles sont correctes, sinon vous allez droit vers un Permission denied bien frustrant.

Autre point : tee ne gère pas les erreurs (stderr) par défaut. Si vous voulez capturer les erreurs, il faudra les rediriger vers stdout d’abord :

./mon_script.sh 2>&1 | tee debug.log

Enfin, n’oubliez pas que tee est un outil parmi d’autres. Si vous avez besoin de fonctionnalités avancées (comme la rotation des logs ou la compression), des outils comme logrotate ou rsyslog seront plus adaptés. Mais pour 90% des cas d’usage quotidiens, tee est largement suffisant.

Conclusion : tee, ou l’art de faire deux choses à la fois

En résumé, tee est l’une de ces commandes Linux qui semblent anodines, mais qui peuvent vous sauver la mise plus souvent qu’on ne le pense. Elle incarne parfaitement la philosophie Unix : faire une seule chose, mais la faire bien. Pas de fioritures, pas de dépendances inutiles, juste un outil qui résout un problème concret avec élégance.

Alors la prochaine fois que vous lancerez une commande et que vous vous direz « J’aimerais bien voir ce qui se passe ET le sauvegarder », souvenez-vous de tee. Et si vous l’utilisez déjà, félicitations : vous faites partie des gens qui ont compris que la ligne de commande n’est pas une relique du passé, mais un terrain de jeu où l’efficacité prime sur le bling-bling.

Publié le 16/10/2026 · 4 min de lecture Partager X LinkedIn

← Précédent Glow : le markdown dans votre terminal