Почему это невозможно?
pv ${dest_file} | gzip -1
pv
это индикатор выполнения
ошибка
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%
Это работает
pv ${file_in} | tar -Jxf - -C /outdir
command-line
gzip
clarkk
источник
источник
pv
иgzip
команды?Ответы:
То, что вы пытаетесь достичь, это увидеть индикатор процесса сжатия. Но это невозможно, используя
pv
. Он показывает только прогресс передачи, которого вы можете достичь чем-то вроде этого (в любом случае, это первая ссылка в Google):Индикатор выполнения будет работать быстро, а затем будет ожидать сжатия, которое больше не наблюдается при использовании
pv
.Но вы можете сделать это наоборот и посмотреть поток вывода, но здесь вы не сможете увидеть фактический прогресс, потому
pv
что не знаете фактический размер сжатого файла:Лучшее, что я нашел на данный момент, это та, что из commandlinefu, даже с ограничением скорости и сжатием каталогов:
источник
gzip input_file | pv > compressed_file
gzip -c
требуется отправить вывод на стандартный вывод, чтобы разрешить его передачуpv
, в противном случае индикатор выполнения не будет работать, так как данные не поступаютpv
:)mysqldump ... | gzip | pv > output.sql.gz
.Да, это возможно, используя строки файла, а не байты. Вы получаете достаточно точный индикатор выполнения:
источник
Вы можете использовать 7z вместо этого, чтобы получить процент прогресса:
источник