find -execでpvを使用する

find -execでpvを使用する

次のコマンドを使用して〜700GiBバックアップファイルを確認しました。

$ find -type f -exec md5sum {} + | sort > ~/checksums

pvこれには時間がかかるため、コマンドに統合して進行状況を表示したいと思います。

私はこれを行うことができます:

$ find -type f -exec pv {} + | md5sum

ただし、すべてのファイルをリンクし、1つのチェックサムのみを生成します。

それでは、これを含めて、pv最後にチェックサムでいっぱいのテキストファイルをどのように取得できますか?

ベストアンサー1

そのようなパイプは利用できないので、最初のコマンドはまったく実行してはいけません-exec(明らかに元の質問)。

代わりに:

find . -type f -exec md5sum {} + | sort -o ~/checksums

またはpv

find . -type f -exec md5sum {} + | pv | sort -o ~/checksums

どちらの場合も、md5sum呼び出しはできるだけ多くのパス名を使用してバッチ処理されます。 sort出力find(例:の出力md5sum)を取得し、指定されたファイル名でソートします。 2番目のバリエーションはおよびpv間にさらに挿入されます。findsort

-exec pv {} | md5sum使用できません個人文書-execパイプは、各ファイルに対して呼び出すインラインシェルスクリプトに含める必要があるためです。しかし、正しい-exec sh -c 'pv "$1" | md5sum' sh {} \;ことでさえ、生成された出力からファイル名を削除するので、うまくいきませmd5sumん。このpvユーティリティはcat

おすすめ記事