2015-11-10 2 views
4

Выполнение некоторых работ Я нашел эту команду «губки», которая делает то же, что и «тройник», но не может найти, когда лучше использовать ту или иную. Может ли кто-нибудь объяснить мне?Различия между губкой и тройником

+1

На любом Linux, который у меня есть, нет команды 'soak'. Только «тройник». До сих пор я никогда не слышал о первом. Возможно, вы имели в виду ['sponge'] (http://linux.die.net/man/1/sponge)? –

+0

Вы имеете в виду команду 'sponge'? «губка - впитайте стандартный ввод и напишите в файл» –

+0

Я отредактировал мой вопрос. @ Two-BitAlchemist yep. губка – crsuarezf

ответ

6

Никто из них не впитывается stderr; только stdout. 'tee' stdinstdout и файлы. 'sponge' пишет stdin только на файл; без ошибок, без вывода. (т. Е. В отличие от «tee ',' губка 'не записывается на stdout). Кроме того,

«губка впитывает все входные данные перед открытием выходного файла»

(от его руководства)

Это различие между ними крайне актуально: «тройником» «читает байт» и «пишет этот байт»; 'губка' ждет получения всего ввода, а затем записывает его.

Полезно прочитать страницы руководства.

+0

Любые конкретные случаи использования, которые можно использовать 'губка' над' tee'? Как правило, потоковая передача хороша. Я знаю, что сортировка требует полного ввода, но какая команда будет примером? –

+0

'expand foo.txt | sponge foo.txt', см. также: https://unix.stackexchange.com/q/207919/43390 –

Смежные вопросы