md5sum
以下を使用して、pv
同じディレクトリにある4GiBファイルを確認しました。
md5sum dir/* | pv -s 4g | sort
コマンドは約28秒で正常に完了しますが、pv
すべてのエラーが出力されます。以下は、全体に表示される出力タイプです。
219 B 0:00:07 [ 125 B/s ] [> ] 0% ETA 1668:01:09:02
-s 4g
なしで同じです| sort
。私も別のファイルで試してみました。
pv
withを使ってみましたが、cat
出力がよく出ますね。md5sum
。
ベストアンサー1
このpv
ユーティリティは「エキゾチックcat
」です。つまり、pv
使用しなければならないほとんどの状況で使用できるという意味ですcat
。
cat
with を使用すると、md5sum
単一ファイルのMD5チェックサムを計算できます。
cat file | md5sum
またはpv
、
pv file | md5sum
md5sum
ただし、残念ながら、この方法ではファイル名を出力に正しく挿入することはできません。
今pv
幸運にも本物fancy cat
、一部のシステム(Linux)では可能です。よりデータが別のプロセスを介して渡されています。これは、-d
他のプロセスのプロセスIDとともに、対応するオプションを使用して行われます。
これは、次のことができることを意味します。
md5sum dir/* | sort >sums &
sleep 1
pv -d "$(pgrep -n md5sum)"
これにより、プロセスpv
を表示できますmd5sum
。これは、バックグラウンドで実行されているプログラムが正しく起動できるsleep
ようにするためです。md5sum
あなたが所有している最後pgrep -n md5sum
に開始されたプロセスのPIDを返します。監視中のプロセスが終了するとすぐに終了します。md5sum
pv
pv
この特定の実行方法を数回テストした結果、通常はうまく機能しているようですが、時には次のファイルに切り替えながらmd5sum
何も出力しないようです。時にはシェルから偽のバックグラウンドタスクを作成するようです。
走るのが一番安全だと思います。
md5sum dir/* >sums &
sleep 1
pv -W -d "$!"
sort -o sums sums
この-W
オプションを使用すると、実際のデータが送信されるのを待ちますが、pv
常に確実に動作するわけではありません。