Que sont les tubes (pipes) dans le terminal Linux
Comment connecter la sortie d'une commande à l'entrée d'une autre sans fichiers intermédiaires.
Un tube (|) connecte la sortie d'une commande
directement à l'entrée d'une autre — sans rien enregistrer dans un
fichier intermédiaire.
Exemple simple
ls -l | grep ".txt"
ls -l liste les fichiers ; au lieu de tous les
afficher à l'écran, cette liste est « canalisée » vers
grep, qui filtre seulement les lignes contenant « .txt ».
Le résultat final est seulement ce qui vous intéresse, pas tout
l'intermédiaire.
Enchaîner plusieurs tubes
cat fichier.log | grep "erreur" | wc -l
Affiche le contenu d'un fichier, filtre seulement les lignes avec « erreur », et compte combien il y en a au total — trois étapes enchaînées sur une seule ligne, sans fichiers temporaires.
Conseil : pensez à chaque tube comme un tapis roulant entre deux machines — ce qui sort de l'une entre directement dans la suivante, sans devoir passer par un plateau intermédiaire (un fichier enregistré).
Différence avec la redirection (>)
Le tube (|) connecte une commande avec une AUTRE
commande. La redirection (>) enregistre la sortie d'une
commande dans un FICHIER. Ce sont des concepts liés mais distincts —
facile à confondre au début.
Questions fréquentes
Puis-je enchaîner plus de deux commandes avec des tubes ?
Oui, il n'y a pas de limite pratique — vous pouvez enchaîner autant de commandes que nécessaire, chacune traitant la sortie de la précédente.
Un tube est-il la même chose qu'enregistrer la sortie dans un fichier ?
Non, ce sont des concepts différents. Le tube (|) connecte une commande directement avec une autre ; la redirection (>) enregistre la sortie dans un fichier sur le disque.