La commande tee lit à partir de l'entrée standard et écrit à la fois dans la sortie standard et dans les fichiers.
Le résultat est que vous pouvez voir la sortie de votre commande et l'enregistrer dans un fichier en même temps.
En d'autres termes, vous avez une entrée qui est canalisée vers deux sorties.
Tout cela a plus de sens si vous connaissez le concept de redirection sous Linux.
La commande porte le nom du connecteur en T utilisé dans l'électricité, la plomberie et d'autres industries. Ils sont appelés tee parce qu'ils ressemblent à la lettre "T".
Maintenant que vous comprenez le but de la commande tee, voyons comment utiliser la commande tee sous Linux.
Exemples de commande Tee
La commande tee a une syntaxe simple :
tee [OPTION] [FILE]
N'oubliez pas que tee lit à partir de l'entrée standard, donc presque tout le temps, vous l'utiliserez dans la conjugaison d'une autre commande.
Laissez-moi vous montrer quelques exemples.
1. Afficher la sortie de la commande et l'enregistrer dans un fichier
Prenons un cas de base où vous voulez compter le nombre de lignes dans un fichier. Vous voulez voir combien de lignes il y a dans le fichier et enregistrer ce nombre dans un autre fichier.
[email protected]:~$ wc -l agatha.txt | tee count.txt
20 agatha.txt
Le nombre de fichiers n'existe pas, il créera donc un nouveau fichier nommé count. Si vous voyez le contenu du nombre de fichiers, vous verrez la même sortie que celle que vous avez vue à l'écran.
[email protected]:~$ cat count.txt
20 agatha.txt
Remarque :par défaut, la commande tee écrasera le contenu du fichier. Si vous le souhaitez, vous pouvez utiliser l'option d'ajout -a avec :
wc -l agatha.txt | tee -a count.txt
2. Afficher la sortie de la commande et l'enregistrer dans plusieurs fichiers
Si vous souhaitez enregistrer la sortie de la commande dans plusieurs fichiers, vous pouvez également le faire avec la commande tee. Il vous suffit de spécifier les fichiers.
[email protected]:$ wc -l agatha.txt | tee count1.txt count2.txt
20 agatha.txt
Vous pouvez vérifier que la même sortie a été stockée dans les deux fichiers mentionnés.
[email protected]:~$ cat count1.txt count2.txt
20 agatha.txt
20 agatha.txt
J'espère que vous saviez que vous pouvez voir plusieurs fichiers avec la commande cat sous Linux.
3. Analyser la sortie de la commande vers une autre commande tout en l'enregistrant dans un fichier
Vous n'avez pas toujours besoin de voir la sortie de la commande. Puisqu'il s'agit d'une sortie standard, vous pouvez la rediriger vers une autre commande.
Prenez la commande ci-dessous par exemple.
[email protected]:~$ ls -l | tee count.txt | wc -l
7
Ce qui se passe ici, c'est que la sortie de la commande 'ls -l' est redirigée vers la commande tee. Maintenant, la commande tee stocke la sortie de 'ls -l' dans le fichier count.txt mais au lieu d'afficher cette sortie, elle est redirigée vers la commande 'wc -l' qui compte le nombre de lignes.
La sortie que vous voyez dans ce cas est la sortie de la commande "wc -l". La sortie de la commande 'ls -l' est stockée dans le fichier count.txt.
[email protected]:~$ cat count.txt
total 20
-r--r--r-- 1 abhishek abhishek 456 Dec 11 21:29 agatha.txt
-rw-r--r-- 1 abhishek abhishek 0 Jan 10 16:03 count.txt
-rw-r--r-- 1 abhishek abhishek 356 Dec 17 11:39 file1.txt
-rw-r--r-- 1 abhishek abhishek 356 Dec 17 09:59 file2.txt
-rw-r--r-- 1 abhishek abhishek 356 Dec 11 21:35 sherlock.txt
drwxr-xr-x 3 abhishek abhishek 4096 Jan 4 20:10 target
Conclusion
L'utilisation de la commande tee dépend vraiment de votre imagination et de votre situation. Je le trouve pratique lorsque je dois analyser une longue sortie comme un fichier journal. Le voir en temps réel et le stocker dans un fichier pour référence future m'aide un peu et me fait gagner du temps.
J'espère que vous avez aimé les exemples de commande tee que j'ai listés ici. Si vous pensez à une façon vraiment géniale d'utiliser cette commande, partagez-la avec le reste d'entre nous dans la section des commentaires.