Ini pada dasarnya adalah jawaban negatif. Tampaknya tidak ada dd, atau mbufferbahkan tidak pvberfungsi adalah semua kasus, khususnya jika tingkat data yang dihasilkan oleh produsen dapat sangat bervariasi. Saya memberikan beberapa testcases di bawah ini. Setelah mengetik perintah, tunggu sekitar 10 detik, lalu ketik >(untuk pergi ke akhir data, yaitu menunggu akhir input).
zsh -c 'echo foo0; sleep 3; \
printf "Line %060d\n" {1..123456}; \
echo foo1; sleep 5; \
echo foo2' | dd bs=64K | less
Di sini, setelah mengetik >, seseorang harus menunggu selama 5 detik, artinya produser (skrip zsh) telah memblokir sebelum sleep 5. Menambah bsukuran menjadi misalnya 32M tidak mengubah perilaku, meskipun buffer 32MB cukup besar. Saya menduga bahwa ini karena ddblok pada output bukannya melanjutkan input. Menggunakan oflag=nonblockbukanlah solusi karena ini membuang data.
zsh -c 'echo foo0; sleep 3; \
printf "Line %060d\n" {1..123456}; \
echo foo1; sleep 5; \
echo foo2' | mbuffer -q | less
Dengan mbuffer, masalahnya adalah baris pertama (foo0) tidak segera muncul. Tampaknya tidak ada opsi untuk mengaktifkan buffer-line pada input.
zsh -c 'echo foo0; sleep 3; \
printf "Line %060d\n" {1..123456}; \
echo foo1; sleep 5; \
echo foo2' | pv -q -B 32m | less
Dengan pv, perilaku tersebut mirip dengan dd. Lebih buruk lagi, saya curiga bahwa itu melakukan hal-hal yang salah ke terminal karena kadang less- kadang tidak dapat lagi menerima input dari terminal; misalnya, seseorang tidak dapat berhenti dengannya q.