GNU/Linux >> Linux Esercitazione >  >> Linux

Reindirizza tutto l'output su file in Bash

Tutti i sistemi operativi POSIX hanno 3 flussi:stdin, stdout e stderr. stdin è l'input, che può accettare stdout o stderr. stdout è l'output principale, che viene reindirizzato con > , >> o | . stderr è l'output dell'errore, che viene gestito separatamente in modo che eventuali eccezioni non vengano passate a un comando o scritte su un file che potrebbe rompersi; normalmente, questo viene inviato a un registro di qualche tipo o scaricato direttamente, anche quando lo stdout viene reindirizzato. Per reindirizzare entrambi allo stesso posto, usa:

$command &> /some/file

MODIFICA :grazie a Zack per aver sottolineato che la soluzione di cui sopra non è portabile--usa invece:

$command > file 2>&1 

Se vuoi silenziare l'errore, fai:

$command 2> /dev/null

Quella parte è scritta in stderr, usa 2> per reindirizzarlo. Ad esempio:

foo > stdout.txt 2> stderr.txt

o se vuoi nello stesso file:

foo > allout.txt 2>&1

Nota:funziona in (ba)sh, controlla la tua shell per la sintassi corretta


Linux
  1. File equivalente a ".bashrc" letto da tutte le shell?

  2. Come reindirizzare l'output di un programma su un file zip?

  3. Come reindirizzare l'output di un programma e continuare a farlo andare a Stdout?

  4. Comando per inviare il contenuto del file a Stdout?

  5. Reindirizzamento e uscita del tubo?

Bash:Scrivi su file

Come reindirizzare stderr a stdout in Bash

Come reindirizzare l'output del comando della shell

Reindirizzare tutto l'output su file usando Bash su Linux?

Determina se l'output è stdout o stderr

bash:reindirizza stderr al file e stdout + stderr allo schermo