Câu trả lời:
Những gì bạn đang cố gắng để đạt được là để xem thanh tiến trình của quá trình nén. Nhưng nó không thể sử dụng pv
. Nó chỉ hiển thị tiến trình chuyển mà bạn có thể đạt được bằng cách như thế này (dù sao, đây là liên kết đầu tiên trong google):
pv input_file | gzip > compressed_file
Thanh tiến trình sẽ chạy nhanh, và sau đó nó sẽ chờ nén, không thể quan sát được nữa bằng cách sử dụng pv
.
Nhưng bạn có thể làm theo cách khác và xem luồng đầu ra, bot ở đây bạn sẽ không thể thấy tiến trình thực tế, vì pv
không biết kích thước thực của tệp nén:
gzip input_file | pv > compressed_file
Điều tốt nhất tôi tìm thấy cho đến nay là một từ Commandlinefu ngay cả với việc giới hạn tốc độ và nén các thư mục:
$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
được yêu cầu gửi đầu ra tới thiết bị xuất chuẩn để cho phép nó được chuyển đến pv
, nếu không thanh tiến trình sẽ không hoạt động vì không có dữ liệu nào pv
:)
mysqldump ... | gzip | pv > output.sql.gz
.
Có, có thể sử dụng các dòng của tệp chứ không phải byte. Bạn nhận được một thanh tiến trình đủ chính xác:
cat input_file | pv -ls $( wc -l input_file ) | gzip -c -- > compressed_file
Bạn có thể sử dụng 7z thay thế để có được phần trăm tiến bộ:
$ 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
vàgzip
lệnh?