Lorsque vous travaillez avec le terminal sous Linux, de nombreux utilitaires de ligne de commande sont disponibles pour vous faciliter la vie. L'un de ces utilitaires est Tee
. Dans ce bref guide, nous apprendrons ce qu'est Tee et l'utilisation de la commande Tee sous Linux avec des exemples pratiques.
Introduction à la commande Tee
Le tee est un simple utilitaire de ligne de commande qui accepte les entrées et écrit la sortie dans un fichier et une sortie standard (c'est-à-dire un terminal). La commande Tee sera principalement utilisée dans les scripts shell lorsque vous souhaitez rediriger la sortie vers plusieurs fichiers et traiter davantage la sortie.
La commande Tee fait partie de GNU coreutils
, il est donc préinstallé avec toutes les distributions Linux.
Pour vérifier si la commande tee est disponible dans votre distribution Linux, exécutez la commande suivante :
$ which tee /usr/bin/tee
Pour vérifier la version tee, vous pouvez utiliser le --version
drapeau.
$ tee --version tee (GNU coreutils) 8.32
Afficher l'aide de la commande tee
Si vous n'avez jamais utilisé la commande tee, il est recommandé de commencer par la section d'aide de la commande tee.
Vous pouvez accéder à la page de manuel de la commande tee pour en savoir plus sur cet utilitaire.
$ man tee
Vous pouvez également passer le --help
argument de la commande tee pour afficher son manuel d'aide.
$ tee --help
Syntaxe de la commande Tee
La syntaxe typique de la commande Tee est donnée ci-dessous :
tee [OPTION]… [FILE]…
Il accepte les drapeaux et le nom de fichier où la sortie sera redirigée.
Il y a deux indicateurs importants que vous utiliserez principalement avec la commande tee.
-a
,--append
flag : Ajouter aux fichiers.-i
,-ignore-interrupts
flag :Ignorer les signaux d'interruption.
Permettez-moi maintenant de vous montrer quelques exemples de commande tee sous Linux.
Exemples de commandes Linux Tee pour les débutants
Comme indiqué précédemment, la commande tee acceptera l'entrée et imprimera la sortie sur le terminal ainsi qu'un fichier qui est passé en argument.
Dans l'exemple ci-dessous, la commande tee prend l'entrée du echo
commande et imprime la sortie sur le terminal ainsi que sur hello.txt
fichier.
$ echo "Welcome to OSTechNix" | tee hello.txt Welcome to OSTechNix
Vérifions le contenu de hello.txt
fichier :
$ cat hello.txt Welcome to OSTechNix
Utiliser la commande tee avec l'opérateur Pipe
La commande Tee ne consiste pas seulement à imprimer l'entrée standard sur le terminal, mais également à la diriger vers un autre programme pour un traitement ultérieur.
La plupart du temps, la commande tee sera utilisée en combinaison avec pipe
Opérateur (|) dans les scripts shell.
Jetez un oeil à l'exemple ci-dessous.
$ echo "Hello world" | tee hello.txt | rev dlrow olleH
$ cat hello.txt Hello world
Laissez-moi vous expliquer ce qui se passe lorsque vous exécutez la commande ci-dessus.
- L'
echo
la commande enverra sa sortie"Hello World"
comme entrée dutee
commande via le tube. Tee
La commande stockera la sortie dans le fichier donnéhello.txt
.- Au lieu d'imprimer la sortie sur le terminal, ce qui est le comportement par défaut, le
tee
passe la commande"Hello World"
chaîne comme entrée durev
commande qui imprime la chaîne dans l'ordre inverse .
Voici un autre exemple.
La commande suivante crée un répertoire appelé "ostechnix", compte le nombre de caractères dans "ostechnix" et affiche "ostechnix" sur le terminal :
$ echo "ostechnix" | tee >(xargs mkdir) >(wc -c)
Attention : Vous devrez peut-être utiliser sudo
avec le tee
si vous créez des fichiers dans des répertoires auxquels vous n'avez pas accès en tant qu'utilisateur normal.
Passer plusieurs fichiers
La commande Tee accepte également plusieurs fichiers comme arguments et stocke la sortie dans chaque fichier.
$ echo "Welcome to OSTechNix" | tee hello1.txt hello2.txt hello3.txt Welcome to OSTechNix
Vérifions le contenu de chaque fichier :
$ cat hello1.txt
Welcome to OSTechNix
$ cat hello2.txt
Welcome to OSTechNix
$ cat hello3.txt
Welcome to OSTechNix
Remplacer ou ajouter
Le comportement par défaut du tee
La commande est qu'elle recherchera si le fichier est déjà disponible et remplacera les données par la nouvelle. Si le fichier n'est pas disponible, il créera le fichier.
Si vous souhaitez ajouter les données au lieu de les remplacer, utilisez -a
ou --append
drapeau.
$ cat hello1.txt Welcome to OSTechNix
$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt I am using PoP_OS Cosmic Desktop
$ cat hello1.txt Welcome to OSTechNix I am using PoP_OS Cosmic Desktop
Combiner Tee avec l'opérateur de redirection
Si vous ne souhaitez pas imprimer la sortie sur le terminal mais simplement écrire la sortie dans des fichiers, vous pouvez alors combiner l'opérateur de redirection avec la commande tee.
C'est un cas idéal uniquement si la commande tee vient en dernier dans votre chaîne de tuyaux. Si la sortie tee est redirigée vers une autre commande comme as
montré dans le premier exemple, pas besoin d'utiliser l'opérateur de redirection.
$ echo "I am using PoP_OS Cosmic Desktop" | tee -a hello1.txt &> /dev/null
Signaux d'interruption
La commande Tee a la possibilité d'interrompre SIGINT en utilisant le -i
ou --ignore-interrupts
drapeau.
Signification - si vous appuyez sur CTRL + C
dans votre terminal pendant que vous exécutez la commande tee avec -i
drapeau, la commande tee interrompra le signal et effectuera une sortie gracieuse en lisant EOF à partir du PIPE.
$ { echo Hello world;sleep 10; } | tee -i hello1.txt
Hello world
^C
$ cat hello1.txt
Hello world
Résumé
Tee est un programme simple que vous ne pouvez pas utiliser quotidiennement. Cependant, connaître la commande tee sera utile lorsque vous écrivez des scripts shell. J'espère que cela vous aidera.