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