Mengapa ini tidak mungkin?
pv ${dest_file} | gzip -1
pv
adalah bilah kemajuan
kesalahan
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%
Ini bekerja
pv ${file_in} | tar -Jxf - -C /outdir
command-line
gzip
clarkk
sumber
sumber
pv
andgzip
command?Jawaban:
Apa yang ingin Anda capai adalah melihat bilah progres proses kompresi. Tetapi tidak mungkin menggunakan
pv
. Ini hanya menunjukkan kemajuan transfer, yang dapat Anda capai dengan sesuatu seperti ini (bagaimanapun, ini adalah tautan pertama di google):Bilah progres akan berjalan cepat, dan kemudian akan menunggu kompresi, yang tidak dapat diamati lagi menggunakan
pv
.Tetapi Anda dapat melakukannya dengan cara lain dan melihat aliran output, bot di sini Anda tidak akan dapat melihat kemajuan aktual, karena
pv
tidak tahu ukuran sebenarnya dari file yang dikompresi:Yang terbaik yang saya temukan sejauh ini adalah dari commandlinefu bahkan dengan pembatasan tingkat dan kompresi direktori:
sumber
gzip input_file | pv > compressed_file
gzip -c
diperlukan untuk mengirim output ke stdout agar dapat diteruskanpv
, jika tidak, bilah progres tidak akan berfungsi karena tidak ada data yang masukpv
:)mysqldump ... | gzip | pv > output.sql.gz
.Ya, agak mungkin menggunakan baris file, bukan byte. Anda mendapatkan bilah kemajuan yang cukup akurat:
sumber
Anda dapat menggunakan 7z sebagai gantinya untuk mendapatkan persentase kemajuan:
sumber