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):
pv input_file | gzip > compressed_file
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:
gzip input_file | pv > compressed_file
Yang terbaik yang saya temukan sejauh ini adalah dari commandlinefu bahkan dengan pembatasan tingkat dan kompresi direktori:
$D=directory
tar pcf - $D | pv -s $(du -sb $D | awk '{print $1}') --rate-limit 500k | gzip > target.tar.gz
gzip input_file | pv > compressed_file
gzip -c
diperlukan untuk mengirim output ke stdout agar dapat diteruskan pv
, jika tidak, bilah progres tidak akan berfungsi karena tidak ada data yang masuk pv
:)
mysqldump ... | gzip | pv > output.sql.gz
.
Ya, agak mungkin menggunakan baris file, bukan byte. Anda mendapatkan bilah kemajuan yang cukup akurat:
cat input_file | pv -ls $( wc -l input_file ) | gzip -c -- > compressed_file
Anda dapat menggunakan 7z sebagai gantinya untuk mendapatkan persentase kemajuan:
$ 7z a spaCy.tar.gz spaCy.tar
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,8 CPUs Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (906E9),ASM,AES-NI)
Open archive: spaCy.tar.gz
--
Path = spaCy.tar.gz
Type = gzip
Headers Size = 20
Scanning the drive:
1 file, 326451200 bytes (312 MiB)
Updating archive: spaCy.tar.gz
Items to compress: 1
32% U spaCy.tar
pv
andgzip
command?