なぜこれができないのですか?
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
達成しようとしているのは、圧縮プロセスの進行状況バーを確認することです。ただし、pv
を使用することはできません。転送の進行状況のみを表示します。これは、次のような方法で達成できます(とにかく、それは 最初のリンク のGoogleです):
pv input_file | gzip > compressed_file
進行状況バーは高速で実行され、圧縮を待機します。圧縮はpv
を使用して監視できなくなります。
しかし、これとは逆の方法で出力ストリームを見ることができます。ここでは、圧縮ファイルの実際のサイズがpv
にわからないため、実際の進捗状況を確認することはできません。
gzip input_file | pv > compressed_file
私がこれまでに見つけた最高のものは、レート制限とディレクトリの圧縮があっても commandlinef からのものです:
$D=directory
tar pcf - $D | pv -s $(du -sb $D | awk '{print $1}') --rate-limit 500k | gzip > target.tar.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