Com o GNU tar
você pode apenas fazer:
tar --totals -c . >/dev/null
... que renderizará saída como ...
Total bytes written: 5990400 (5.8MiB, 5.5GiB/s)
... no stderr. Da mesma forma, com qualquer tar (ou fluxo) você pode usar dd
para entregar um relatório sobre a contagem de bytes. Isso pode ou não ser preferível wc
, mas o dd
padrão é um tamanho de bloco de 512 bytes - que é idêntico ao tar
tamanho do bloco. Se o PIPE_BUF do seu sistema for grande o suficiente, você poderá expandir dd
o tamanho do bloco para corresponder ao tar
tamanho do registro - que é 20 blocos ou 10240 bytes. Como isso:
tar -c . | dd bs=bx20 >/dev/null
585+0 records in
585+0 records out
5990400 bytes (6.0 MB) copied, 0.0085661 s, 699 MB/s
Isso pode ou não oferecer uma solução com melhor desempenho do que wc
.
Nos casos de uso dd
e de tar
uso, você não precisa realmente se desfazer do fluxo. Eu redirecionei para o /dev/null
acima - mas eu poderia tê-lo redirecionado com facilidade para algum arquivo e ainda receber o relatório em seu tamanho no momento em que foi gravado.
wc
o supérfluo-
, também não precisará docut
comando subsequente .