2013-03-07 10 views
7

Voglio ridimensionare lo stdout su più file, ma mantenere lo stdout stesso silenzioso. tee è vicino ma esso stampa a entrambi i file e stdoutConvogliare più file, ma non stdout

$ echo 'hello world' | tee aa bb cc 
hello world 

Questo funziona ma preferirei qualcosa di più semplice, se possibile

$ echo 'hello world' | tee aa bb cc >/dev/null 
+3

In 'tee aa bb cc',' tee' deve scrivere 3 file, e si ha ancora 'bash' reindirizzare l'output standard in un file. In 'tee aa bb> cc', si ha il reindirizzamento bash, ma' tee' deve solo scrivere in 2 file. Direi che il secondo è più efficiente, ma solo nel senso più stretto; non noterai mai la differenza. – chepner

risposta

11

Si può semplicemente utilizzare:

echo 'hello world' | tee aa bb > cc 
1

Puoi chiudere anche l'output di tout stdout scrivendo a/dev/full

echo 'hello world' | tee aa bb cc >/dev/full 

o chiudendo stdout.

echo 'hello world' | tee aa bb cc >&- 

Siate però consapevoli del fatto che si ottiene uno "tee: standard output: No spazio lasciato sul dispositivo" o "T: standard output: Bad di file descrittore" avvertimenti.

+0

'/ dev/null', non'/dev/full' – anishsane