複数のディレクトリから 1 つのファイルに対して shasum を実行すると、期待どおりの結果が得られ、最終的には次のようになります。
shasum 2010/Whitmore/The\ Astrophysical\ Journal\ 2010\ Whitmore.pdf
5da84767c2301f29ed3b7db7542167150fe63b8b 2010/Whitmore/The Astrophysical Journal 2010 Whitmore.pdf
同じディレクトリから find を実行すると、問題なくファイルが一覧表示されます。
find 2010/Whitmore/* | xargs -0
2010/Whitmore/The Astrophysical Journal 2010 Whitmore.pdf
私は、ファイル名とともに find (たくさんあります) によって見つかった各ファイルの個々の shasum を返す bash スクリプト (または 1 行だけ) を作成しようとしています。ファイル名を shasum にパイプすることは、私が試したどの組み合わせでも機能しません。
問題はファイル名のスペースにあると思いますが、Google で検索した後、多くの find/xargs/ls の組み合わせ (および -print0 フラグを含む他の人にとってはうまくいくと思われるもののさまざまな組み合わせ) を試してみましたが、まだ理解できません。これらのディレクトリの下にある各ファイルに対して shasum を実行する方法を教えてください。
この結果を取得するまったく異なる方法がある場合に備えて、必要な出力の例 (Whitmore の下に 2 つのファイルがあると仮定):
find 2010/Whitmore/* | xargs -0 | shasum
5da84767c2301f29ed3b7db7542167150fe63b8b 2010/Whitmore/The Astrophysical Journal 2010 Whitmore.pdf
4d2b0a6da00473133b4617d67d9249da3d05cc19 2010/Whitmore/arXiv 2010 Whitmore.pdf
Mac OSX 10.6 を使用しています