जवाबों:
आप क्या हासिल करने की कोशिश कर रहे हैं, संपीड़न प्रक्रिया की प्रगति पट्टी को देखना है। लेकिन इसका उपयोग संभव नहीं है pv
। यह केवल स्थानांतरण प्रगति दिखाता है, जिसे आप इस तरह से प्राप्त कर सकते हैं (वैसे भी, यह Google की पहली कड़ी है):
pv input_file | gzip > compressed_file
प्रगति पट्टी तेजी से चलेगी, और फिर यह संपीड़न का इंतजार करेगी, जो अब उपयोग करने योग्य नहीं है pv
।
लेकिन आप यह कर सकते हैं कि दूसरे तरीके से आउटपुट स्ट्रीम देखें और देखें, यहाँ आप वास्तविक प्रगति pv
नहीं देख पाएंगे, क्योंकि संपीड़ित फ़ाइल का वास्तविक आकार नहीं पता है:
gzip input_file | pv > compressed_file
अब तक का सबसे अच्छा मैंने पाया है जो कमांडलाइनफू से एक है, यहां तक कि दर सीमित और निर्देशिका के संपीड़न के साथ:
$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
इसे पारित करने की अनुमति देने के लिए स्टडआउट को आउटपुट भेजने की आवश्यकता है pv
, अन्यथा प्रगति बार काम नहीं करेगा क्योंकि कोई डेटा नहीं जा रहा है pv
:)
mysqldump ... | gzip | pv > output.sql.gz
।
हां, यह फ़ाइल की पंक्तियों का उपयोग करके थोड़े संभव है, बाइट्स से नहीं। आपको एक सटीक पर्याप्त प्रगति पट्टी मिलती है:
cat input_file | pv -ls $( wc -l input_file ) | gzip -c -- > compressed_file
प्रतिशत प्रगति प्राप्त करने के लिए आप 7z का उपयोग कर सकते हैं:
$ 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
एंडgzip
कमांड पढ़ा है ?