Você não precisa de kill -USR1
para saber onde dd
está. Você pode usar lsof
para exibir a posição do seu descritor de arquivo de entrada. Obter saída parseable é um pouco abstruso, mas funciona. Observe que o 0
é o descritor do arquivo de entrada; se você passar um argumento if=…
para dd
, em vez de deixá-lo ler a partir da entrada padrão, dependendo da sua implementação de dd
, ele poderá ler um descritor diferente.
lsof -a -o -p $! -d 0 -F o | sed -n 's/^o[0-9]*t//p'
No Linux, você pode obter essas informações diretamente de /proc
.
</proc/$!/fdinfo/0 awk '$1 == "pos:" {print $2}'
Você também pode usar cat
em vez de dd
: muitas vezes é mais rápido e é menos propenso a erros .