Za zmínku stojí, že 2>&1 znamená, že bude přesměrována i standardní chyba spolu se standardním výstupem. Takže
someCommand | tee someFile
poskytuje pouze standardní výstup v souboru, ale ne standardní chybu:standardní chyba se objeví pouze v konzole. Chcete-li získat standardní chybu v souboru, můžete použít
someCommand 2>&1 | tee someFile
(zdroj:Co je v shellu " 2>&1 "?). Nakonec oba výše uvedené příkazy zkrátí soubor a začnou vymazat. Pokud použijete posloupnost příkazů, možná budete chtít získat výstup a chybu všech z nich, jeden po druhém. V tomto případě můžete použít -a příznak k "tee" příkazu:
someCommand 2>&1 | tee -a someFile
V případě, že někdo potřebuje připojit výstup a ne přepsat, je možné použít volbu "-a" nebo "--append" příkazu "tee" :
ls 2>&1 | tee -a /tmp/ls.txt
ls 2>&1 | tee --append /tmp/ls.txt
Ano, pokud výstup přesměrujete, na konzoli se nezobrazí. Použijte tee
.
ls 2>&1 | tee /tmp/ls.txt