Všechny operační systémy POSIX mají 3 proudy:stdin, stdout a stderr. stdin je vstup, který může přijmout stdout nebo stderr. stdout je primární výstup, který je přesměrován pomocí >
, >>
nebo |
. stderr je chybový výstup, který je zpracováván samostatně, takže žádné výjimky nejsou předány příkazu nebo zapsány do souboru, který by mohl narušit; normálně se to posílá do nějakého logu nebo přímo vyhazuje, i když je stdout přesměrován. Pro přesměrování obou na stejné místo použijte:
$command &> /some/file
UPRAVIT :děkuji Zackovi za upozornění, že výše uvedené řešení není přenosné – místo toho použijte:
$command > file 2>&1
Pokud chcete chybu umlčet, postupujte takto:
$command 2> /dev/null
Tato část je zapsána do stderr, použijte 2>
jej přesměrovat. Například:
foo > stdout.txt 2> stderr.txt
nebo chcete-li ve stejném souboru:
foo > allout.txt 2>&1
Poznámka:toto funguje v (ba)sh, zkontrolujte, zda váš shell má správnou syntaxi