Não pode fazer isso, pelo menos não tão convenientemente quanto você provavelmente gostaria. Para entender por que, você precisa considerar como esse programa funcionaria. No caso de descompactação, ele pode facilmente indicar o arquivo .tar.xz
original para obter seu tamanho, e o progresso pode ser calculado como o número de bytes que passaram por bar
, dividido pelo tamanho do arquivo. Mas no caso de compactação, bar
não é inteligente o suficiente para descobrir o tamanho original do diretório, nem sabe o tamanho máximo de uma entrada que é canalizada para ele (por exemplo, se a saída de tar
for transmitida para bar
).
bar
parece aceitar uma opção -s
para que você possa ajudá-lo com o tamanho esperado, mas não consegui que ele produzisse uma saída correta. Parece algo assim, se você quiser brincar mais com isso:
tar cf - apache24/ | bar -s $(du -sb apache24 | cut -f1) | xz > apache24.tar.xz
Na prática, você provavelmente teria que adicionar um fator de falsificação à saída du
para considerar as despesas gerais no formato tar
. Obviamente, não é muito conveniente ter que fazer.