Em man 1 pv
:
Note that if the input size cannot be calculated, and the output is a block device, then the size of the block device will be used and
pv
will automatically stop at that size as if-S
had been given.
Este "como se -S
" é para evitar "nenhum espaço deixado no dispositivo" e para sair com sucesso.
Se você quer saber como é que pv
pode saber o tamanho de seu stdout, a resposta é:
Não é o caso pv
flui para algum fifo e então o shell lê o fifo e grava em /dev/sdd
. O que acontece é que o shell faz com que o descritor de arquivo pv
aponte para /dev/sdd
desde o início, então o processo pode detectar que é um dispositivo de bloco, consulta sobre seu tamanho etc.