次のようなものを使用して、各ファイルに対してコマンドを実行できます:
find . -name "*.jar" -exec md5sum {} \; >result
これは、現在のディレクトリまたはサブディレクトリ内のすべてのファイルを再帰的にハッシュするためにも機能します (sysadmin に感謝します!):
md5sum $(find . -name '*.jar') > result.txt
上記は、ファイル名の先頭に「./」を追加します (パスは含めません)。
-exec
の使用 mux からの提案により、ファイル名の先頭に「*」が追加されます (パスなし)。
リストされたファイルの順序も 2 つの間で異なっていましたが、私は bash スクリプトの完全な初心者であるため、その理由を正確に述べる資格はありません。
編集:HPCでリモートで実行した私の経験に基づいた、プリペンドとフルパスに関する上記のことは忘れてください。 cygwin を使用してローカルの Windows ボックスでシステム管理者の提案を実行し、「*./」を前に付けてフル パスを取得しました。比較を容易にするために、一貫性のないパスをダンプして先頭に追加するために、他の空想を使用する必要があります。要するに、YMMV.