Potok, czyli znak |, służy w powłoce Linux do przekazania standardowego wyjścia jednego polecenia na standardowe wejście drugiego polecenia.
Schemat:
polecenie1 | polecenie2
Oznacza to, że wynik tekstowy polecenie1 trafia jako dane wejściowe do polecenie2.
Przykład
ls -l | grep txt
Polecenie ls -l wypisuje listę plików, a grep txt filtruje tylko linie zawierające tekst txt.
Ważne w kontekście chmod
Polecenie chmod zwykle nie wypisuje nic na standardowe wyjście, jeśli wykona się poprawnie. Dlatego zapis:
chmod ug=rw szkola.txt | ls
nie przekazuje do ls żadnej istotnej treści. Samo chmod zmienia jednak uprawnienia pliku.
W praktyce, aby najpierw zmienić prawa, a potem wyświetlić szczegóły pliku, czytelniej byłoby użyć:
chmod ug=rw szkola.txt && ls -l szkola.txt
albo dwóch osobnych poleceń:
chmod ug=rw szkola.txt
ls -l szkola.txt