GNU/Linux >> Znalost Linux >  >> Linux

Přesměrování výstupu příkazu do souboru a terminálu

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

Linux
  1. Jak přesměrovat výstup do souboru a stdout

  2. Jak připojit výstup do souboru?

  3. Jak přesměrovat výstup system() do souboru?

  1. Jak uložit výstup příkazu do souboru v Linuxu

  2. Jak zachytit terminálové relace a výstup pomocí příkazu skriptu Linux

  3. Uložte výstup příkazu data a watch do souboru

  1. Jak přesměrovat výstup do souboru a Stdout v Linuxu

  2. Jak přesměrovat výstup programu do souboru ZIP?

  3. Způsob, jak přesměrovat výstup programu, a přesto jej přejít na Stdout?