Linux vous permet de stocker la sortie de la commande dans des fichiers comme moyen de redirection de sortie. Lorsque vous enregistrez la sortie dans un fichier à l'aide de la > ou >> opérateurs, la sortie est redirigée sans aucune information affichée sur le terminal.
Mais que se passe-t-il si vous souhaitez imprimer la sortie à l'écran et la stocker simultanément dans un fichier? Bien que vous ne puissiez pas le faire avec les opérateurs de redirection de sortie, il est possible de le faire en utilisant la commande tee sous Linux.
Syntaxe de commande de base
tee est un utilitaire Linux standard utilisé pour diviser la sortie d'une commande entre la sortie standard et les fichiers.
Contrairement à la plupart des commandes Linux, tee est utilisé avec d'autres programmes utilisant un tube (|). L'opérateur de canalisation, l'un des
de nombreux opérateurs de ligne de commande sous Linux — permet à un programme d'utiliser la sortie d'une autre commande comme entrée. Vous avez peut-être utilisé pipe en utilisant grep à côté la commande ls ou chat.La syntaxe de base de la commande tee est :
commande | chemin d'accès aux options de tee
...où options et chemin du fichier sont les arguments de ligne de commande et le chemin d'accès au fichier dans lequel vous souhaitez stocker la sortie.
Sortie de terminal divisée sur Linux avec tee
L'utilisation la plus simple de tee consiste à diviser la sortie pour l'afficher dans le terminal et à la stocker dans un fichier. Par exemple, pour stocker la sortie de la commande ls dans un fichier texte nommé "sortie.txt," courir:
ls | tee ./output.txt
La sortie affichera le contenu du répertoire de travail actuel comme d'habitude. En vérifiant le fichier output.txt, vous constaterez que tee a également enregistré la sortie dans le fichier.
Lorsque vous spécifiez un chemin de fichier, tee vérifie si le fichier existe. S'il n'en trouve pas, il crée automatiquement le fichier pour vous, ce qui le rend pratique pour une utilisation dans les scripts shell. Il est utile lorsque vous souhaitez enregistrer la sortie d'un programme ou d'un script pour référence ultérieure.
Vous devrez faire précéder la commande tee de sudo pour lire ou stocker des données dans un fichier appartenant à l'utilisateur root.
Si le fichier spécifié contient des données stockées à l'intérieur que vous ne voulez pas écraser, utilisez le -un signaler à ajouter la sortie dans le fichier, au lieu d'effacer tout le fichier puis d'enregistrer les données :
ls | tee -a ./sortie.txt
De même, vous pouvez rediriger la sortie vers plusieurs fichiers en spécifiant les chemins, séparés par des espaces simples :
ls | tee ./output1.txt ./output2.txt
Parfois, des erreurs inattendues ou des interruptions manuelles (en utilisant Ctrl + C ou Ctrl + Z) dans l'ancienne commande peut entraîner la fermeture de tee. Pour ignorer ces interruptions, utilisez le -je drapeau:
ls | tee -i sortie.txt
Pour obtenir de l'aide sur la ligne de commande concernant tee ou trouver les détails de la version, utilisez le --aider et --version drapeaux comme suit :
té --aide
té --version
Rediriger la sortie vers une autre commande
Vous pouvez créer une chaîne de sortie en raccordant un tee avec d'autres commandes Linux. Cela enregistrera la sortie dans le fichier spécifié, puis la transmettra à la commande suivante pour traitement.
Utilisez le format suivant pour rediriger la sortie de tee vers une autre commande :
commande | tee chemin du fichier | autrecommande
Par exemple, la commande suivante enregistrera la sortie de la commande ls dans sortie.txt avant de finalement le rediriger vers grep pour une recherche rapide :
ls | tee output.txt | grep "Documents"
Dans l'ensemble, vous pouvez utiliser la commande tee pour jouer avec l'entrée et la sortie standard sous Linux.
Manipulation de la sortie et du texte avec les commandes Linux
La commande tee ajoute des fonctionnalités indispensables aux opérateurs de redirection de sortie standard sous Linux. Vous pouvez même l'utiliser pour manipuler la sortie d'une commande avant de la transmettre à un autre programme.
De même, vous pouvez modifier le texte à l'aide du terminal à l'aide de certaines commandes Linux standard. Cela peut prendre un certain temps pour s'y habituer, mais au final, la manipulation de texte via la ligne de commande vaut la peine d'être apprise pour tout administrateur système.