Was sind Pipes im Linux-Terminal
Wie man die Ausgabe eines Befehls mit der Eingabe eines anderen verbindet, ganz ohne Zwischendateien.
Eine Pipe (|) verbindet die Ausgabe eines Befehls
direkt mit der Eingabe eines anderen — ohne etwas in einer
Zwischendatei zu speichern.
Einfaches Beispiel
ls -l | grep ".txt"
ls -l listet die Dateien auf; statt sie alle auf dem
Bildschirm anzuzeigen, wird diese Liste an grep
"weitergeleitet", das nur die Zeilen mit ".txt" herausfiltert. Das
Endergebnis ist nur das, was Sie interessiert, nicht alles
Dazwischenliegende.
Mehrere Pipes verketten
cat datei.log | grep "fehler" | wc -l
Zeigt den Inhalt einer Datei, filtert nur die Zeilen mit "fehler", und zählt, wie viele es insgesamt gibt — drei verkettete Schritte in einer Zeile, ganz ohne temporäre Dateien.
Tipp: Stellen Sie sich jede Pipe wie ein Förderband zwischen zwei Maschinen vor — was aus der einen herauskommt, geht direkt in die nächste, ohne über ein Zwischentablett (eine gespeicherte Datei) zu laufen.
Unterschied zur Umleitung (>)
Die Pipe (|) verbindet einen Befehl mit einem ANDEREN
Befehl. Die Umleitung (>) speichert die Ausgabe eines
Befehls in einer DATEI. Das sind verwandte, aber unterschiedliche
Konzepte — anfangs leicht zu verwechseln.
Häufig gestellte Fragen
Kann ich mehr als zwei Befehle mit Pipes verketten?
Ja, es gibt keine praktische Grenze — Sie können so viele Befehle verketten, wie Sie brauchen, jeder verarbeitet die Ausgabe des vorherigen.
Ist eine Pipe dasselbe wie die Ausgabe in einer Datei zu speichern?
Nein, das sind unterschiedliche Konzepte. Die Pipe (|) verbindet einen Befehl direkt mit einem anderen; die Umleitung (>) speichert die Ausgabe in einer Datei auf der Festplatte.