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