N.B. esta não é uma resposta completa, mas estou mantendo aqui, principalmente porque há bons comentários abaixo.
Na verdade, só imprime
y\n
quando solicitado porapt-get
?
Sim. O lado direito dos tubos funciona ao mesmo tempo que o lado esquerdo produz a saída. Além disso, o lado esquerdo não vai para "conclusão", a menos que seja necessário. Por exemplo, o seguinte irá criar um loop infinito, escrevendo no terminal até ser morto.
while true; do echo foo; done
No entanto, o seguinte imprimirá 10 linhas e sairá normalmente.
while true; do echo foo; done | head
Quando o comando head
for concluído, o lado esquerdo do pipe não precisará mais funcionar e o loop "infinito" não existirá mais.