pipe et tee
100%

Text-Fu · Leçon 4

pipe et tee

Découvrez comment les pipelines relient des commandes et comment tee sauvegarde un flux tout en le transmettant.

Les pipelines relient de petites commandes afin que les données circulent sans fichier intermédiaire. tee peut copier une partie de ce flux dans un fichier tout en continuant à le transmettre.

Relier des commandes avec |

Si une liste est trop longue :

$ ls -la /etc

Placez | entre les commandes pour relier stdout de celle de gauche à stdin de celle de droite :

$ ls -la /etc | less

Le shell démarre les commandes et établit la connexion. Elles peuvent fonctionner en parallèle : less commence à lire avant que ls ait tout produit.

Dans ls -la /etc | less, quels flux | relie-t-il par défaut ?

Garder stderr séparé

Un simple | ne transporte que stdout. Stderr conserve sa destination, souvent le terminal :

$ find /etc -name "*.conf" | less

Les chemins trouvés traversent le tube, tandis que les erreurs d'autorisation restent au terminal. Redirigez-les séparément si nécessaire :

$ find /etc -name "*.conf" 2> find-errors.log | less

Dans find /etc -name "*.conf" | less, où va normalement stderr de find sans autre redirection ?

Copier un flux avec tee

tee lit stdin, en écrit une copie dans chaque fichier nommé et reproduit les mêmes données sur stdout :

$ ls | tee listing.txt

listing.txt reçoit la liste et stdout de tee reste relié au terminal. Par défaut, tee crée ou tronque le fichier.

Quelle commande affiche la sortie de generate-report et remplace aussi report.txt par cette sortie ?

Utilisez -a pour ajouter au lieu de remplacer :

$ date | tee -a activity.log

Quelle commande affiche la date et l'ajoute à activity.log ?

Sauvegarder un résultat intermédiaire

Placez tee au milieu d'un pipeline :

$ ls -la /etc | tee etc-listing.txt | grep "conf"

Ce pipeline produit la liste complète, l'enregistre dans etc-listing.txt, puis transmet le même flux à grep, qui n'affiche que les lignes contenant conf. Le fichier reçoit donc les données avant filtrage ; placez tee après grep pour ne conserver que les correspondances.

Que contient all.txt après produce | tee all.txt | grep error ?

Leçon terminée

Vous avez terminé pipe et tee

Vous savez désormais relier des commandes et préserver certains points d'un flux.

  • Relier stdout d'une commande à stdin d'une autre.

  • Rediriger stderr séparément.

  • Copier une entrée vers un fichier et stdout avec tee.

  • Ajouter avec tee -a.

  • Positionner tee avant ou après un filtre selon le besoin.

Conservez votre progression

Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.

Créer un compte gratuit
Leçon Suivante
Retour à Text-Fu