Bu temelde olumsuz bir cevaptır. Özellikle üretici tarafından üretilen veri oranı çok değişebiliyorsa dd, ne olduğu mbuffer, ne de pvişe yaradığı görülmektedir. Aşağıda bazı test senaryoları veriyorum. Komutu yazdıktan sonra, yaklaşık 10 saniye bekleyin, sonra yazın >(verinin sonuna gitmek, yani girişin bitmesini bekleyin).
zsh -c 'echo foo0; sleep 3; \
printf "Line %060d\n" {1..123456}; \
echo foo1; sleep 5; \
echo foo2' | dd bs=64K | less
Burada, yazdıktan sonra >, 5 saniye beklemek zorunda, yani üreticinin (zsh script) önce bloke olduğu anlamına gelir sleep 5. Artan bs32MB tampon yeterince büyük olsa mesela 32M boyutu, davranışı değiştirmez. Bunun ddgirişle devam etmek yerine çıkıştaki bloklardan kaynaklandığından şüpheleniyorum . oflag=nonblockVerileri attığı için kullanmak bir çözüm değildir.
zsh -c 'echo foo0; sleep 3; \
printf "Line %060d\n" {1..123456}; \
echo foo1; sleep 5; \
echo foo2' | mbuffer -q | less
İle mbuffer, sorun ilk satırı (foo0) hemen görünmez olmasıdır. Girişte satır arabelleğe almayı etkinleştirmek için herhangi bir seçenek yok gibi görünüyor.
zsh -c 'echo foo0; sleep 3; \
printf "Line %060d\n" {1..123456}; \
echo foo1; sleep 5; \
echo foo2' | pv -q -B 32m | less
İle pv, davranış benzer dd. Daha da kötüsü, bazen terminalden lessgirdi alamadığı için terminalde yanlış şeyler yaptığından şüpheleniyorum ; örneğin, biriyle çıkamazsınız q.