Когда я делаю это:
find . -name "pattern" | grep "another-pattern"
Являются ли процессы, find
и grep
, порожденными вместе? Я думаю, да. Если так, то как это работает?:
yes | command_that_prompts_for_confirmations
Если yes
постоянно отправляет 'y' на стандартный вывод и command_that_prompts_for_confirmations
читает 'y', когда читает свой стандартный ввод, как yes
узнает, когда завершить работу? Потому что, если я запускаю yes
в одиночку, не передавая свои выходные данные какой-либо другой команде, это никогда не заканчивается.
Но если команды конвейера не порождают все процессы одновременно, тогда как yes
узнает, сколько у вас нужно вывести? Это ловушка-22 для меня здесь. Может кто-нибудь объяснить мне, как этот трубопровод работает в * NIX?