2013-03-07 16 views
7

Chcę potokować standardowe wyjście do wielu plików, ale stdout się cicho. tee jest blisko, ale nie drukuje na obu plików i stdoutRury do wielu plików, ale nie stdout

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

To działa, ale wolałbym coś prostszego, jeśli to możliwe

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

W 'tee aa bb cc',' tee' musi napisać 3 pliki, i nadal masz 'bash' przekierowujący standardowe wyjście do pliku. W 'tee aa bb> cc', masz przekierowanie bash, ale' tee' musi tylko napisać do 2 plików. Powiedziałbym, że drugi jest bardziej wydajny, ale tylko w ścisłym tego słowa znaczeniu; nigdy nie zauważysz różnicy. – chepner

Odpowiedz

11

można po prostu użyć:

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

Można również zamknij wyjście stdout z tee, pisząc do/dev/full

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

lub przez zamknięcie standardowego wyjścia.

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

Należy jednak pamiętać, że dostaniesz albo „tee: standardowe wyjście: Brak miejsca na urządzeniu” lub „tee: standardowe wyjście: Bad pliku deskryptora” ostrzeżeń.

+0

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

Powiązane problemy