間違い

間違い

なぜこれは不可能ですか?

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

答え1

達成しようとしているのは、圧縮プロセスの進行状況バーを表示することです。しかし、使用は不可能です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

答え2

はい、バイトの代わりにファイルの行を使用できます。十分に正確な進行状況バーが表示されます。

cat input_file | pv -ls $( wc -l input_file ) | gzip -c -- > compressed_file

答え3

可能であれば、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   

         

関連情報