Vale la pena ricordare che 2>&1 significa che anche l'errore standard verrà reindirizzato, insieme all'output standard. Quindi
someCommand | tee someFile
ti dà solo l'output standard nel file, ma non l'errore standard:l'errore standard apparirà solo nella console. Per ottenere anche l'errore standard nel file, puoi usare
someCommand 2>&1 | tee someFile
(fonte:nella shell, cos'è " 2>&1 "? ). Infine, entrambi i comandi precedenti tronceranno il file e inizieranno a cancellare. Se usi una sequenza di comandi, potresti voler ottenere l'output&errore di tutti loro, uno dopo l'altro. In questo caso puoi usare -a flag per il comando "tee":
someCommand 2>&1 | tee -a someFile
Nel caso in cui qualcuno abbia bisogno di aggiungere l'output e non eseguire l'override, è possibile utilizzare l'opzione "-a" o "--append" del comando "tee":
ls 2>&1 | tee -a /tmp/ls.txt
ls 2>&1 | tee --append /tmp/ls.txt
Sì, se reindirizzi l'output, non verrà visualizzato sulla console. Usa tee
.
ls 2>&1 | tee /tmp/ls.txt