Jsou 3 deskriptory souborů, stdin, stdout a stderr (std=standard).
Normálně můžeš:
Malá poznámka k tomuto: s málo příkazy můžeš vidět zároveň stdout (který
zbývá v bufferu) a stderr, který bude vypsán na obrazovku, ale smazán,
jakmile zkusíš 'brouzdat' bufferem.
[stdin=stand. vstup (klávesnice), stdout=stand. výstup (obrazovka),
stderr=chybový výstup (obrazovka) - v závorkách jsou nejtypičtější příklady
(pozn. překladatele)]
Toto způsobí, že výstup programu bude zapsán do souboru.
ls -l > ls-l.txt
Zde byl vytvořen soubor nazvaný 'ls-l.txt' a bude obsahovat to, co uvidíš na
obrazovce, když napíšeš příkaz 'ls -l' a provedeš ho.
Toto způsobí, že výstup stderr programu bude zapsán do souboru.
grep da * 2> grep-errors.txt
Zde byl vytvořen soubor nazvaný 'grep-errors.txt' a bude obsahovat to, co uvidíš
ve výstupu stderr z příkazu 'grep da *'.
Toto způsobí, že výstup stderr programu půjde do stejného deskriptoru souboru jako stdout.
grep da * 1>&2
Zde je stdout část příkazu poslána do stderr, můžeš si to učinit různými
způsoby.
Toto způsobí, že výstup stderr programu půjde do stejného deskriptoru souboru jako stdout.
grep * 2>&1
Zde je stderr část příkazu poslána do stdout, jestliže pošleš rouru do
less, uvidíš, že řádky, které normálně 'zmizí' (jak jsou zapisovány na
stderr), jsou právě uchovávány (protože jsou na stdout).
Toto umístí každý výstup programu do souboru. To je občas vhodné pro vstupy cronu, jestli chceš, aby příkaz prošel v naprostém pokoji (bez hlášek na obrazovku).
rm -f $(find / -name core) &> /dev/null
Toto (myšleno při vstupu cronu) smaže každý soubor nazvaný 'core' v
jakémkoliv adresáři. Všimni si, že by sis měl být úplně jistý, co příkaz
dělá, jestli hodláš, aby nevypisoval zprávy na výstup.