Por que isso não é possível?
pv ${dest_file} | gzip -1
pv
é uma barra de progresso
erro
gzip: compressed data not written to a terminal. Use -f to force compression.
For help, type: gzip -h
0 B 0:00:00 [ 0 B/s] [> ] 0%
Isso funciona
pv ${file_in} | tar -Jxf - -C /outdir
command-line
gzip
Clark
fonte
fonte
pv
egzip
comando?Respostas:
O que você está tentando alcançar é ver a barra de progresso do processo de compactação. Mas não é possível usar
pv
. Ele mostra apenas o progresso da transferência, que você pode obter com algo assim (de qualquer forma, é o primeiro link no google):A barra de progresso será executada rapidamente e aguardará a compactação, que não é mais observável usando
pv
.Mas você pode fazer o contrário e observar o fluxo de saída, pois aqui você não poderá ver o progresso real, porque
pv
não sabe o tamanho real do arquivo compactado:O melhor que encontrei até agora é o do commandlinefu, mesmo com limitação de taxa e compactação de diretórios:
fonte
gzip input_file | pv > compressed_file
gzip -c
é necessário para enviar a saída para stdout para permitir que ele seja passado parapv
, caso contrário, a barra de progresso não vai funcionar como não há dados que vão parapv
:)mysqldump ... | gzip | pv > output.sql.gz
.Sim, é meio possível usar as linhas do arquivo, não os bytes. Você obtém uma barra de progresso precisa o suficiente:
fonte
Você pode usar 7z para obter um progresso percentual:
fonte