ディレクトリ内のすべてのファイルに対してMD5sumを作成し、MD5SUMファイルを含むファイルごとに(ファイル名).md5を作成します。

ディレクトリ内のすべてのファイルに対してMD5sumを作成し、MD5SUMファイルを含むファイルごとに(ファイル名).md5を作成します。

ファイルでいっぱいのディレクトリがあります。各ファイルは特定のタイプの宛先ホストにコピーされます。

ディレクトリ内のすべてのファイルのMD5合計を計算し、合計が生成されたファイル名と一致しますが、.md5が追加されたファイルに対応するmd5合計を保存したいと思います。

たとえば、ディレクトリがあるとします。

a.bin
b.bin
c.bin

最終結果は次のとおりです。

a.bin
a.bin.md5     # a.bin's calculated checksum
b.bin
b.bin.md5     # b.bin's calculated checksum
c.bin
c.bin.md5     # c.bin's calculated checksum

これを行うには、find execとxargsを試しました。

findを使って次のコマンドを試しました。

find . -type f -exec md5sum {} + > {}.md5

xargsを使用して次のコマンドを試しました。

find . -type f | xargs -I {} md5sum {} > {}.md5

どちらの場合も、最終的に私が望むものではない{}.txtというファイルが生成されます。

私が作成したいmd5ファイルを生成するためにこれを調整する方法を教えてくれる人はいますか?

ベストアンサー1

cd /path/to/files &&
for file in *; do
    if [[ -f "$file" ]]; then
        md5sum -- "$file" > "${file}.md5"
    fi
done

おすすめ記事