Com o GNU tarvocê 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 ddpara entregar um relatório sobre a contagem de bytes. Isso pode ou não ser preferível wc, mas o ddpadrão é um tamanho de bloco de 512 bytes - que é idêntico ao tartamanho do bloco. Se o PIPE_BUF do seu sistema for grande o suficiente, você poderá expandir ddo tamanho do bloco para corresponder ao tartamanho 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 dde de taruso, você não precisa realmente se desfazer do fluxo. Eu redirecionei para o /dev/nullacima - 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.
wco supérfluo-, também não precisará docutcomando subsequente .