web-dev-qa-db-ja.com

ドライブ内のすべてのフォルダに対してmd5ファイルを再帰的に作成するにはどうすればよいですか?

ドライブrecursivley内のすべてのフォルダに対してmd5chechsumファイルを作成するスクリプトを探していますか?

私のマシンにはmd5deepのコピーがありますが、bashのスクリプト作成はそれほど得意ではありません。

3
tristank

特定のディレクトリの下にあるファイルの.md5ファイルを取得するには、次のスクリプトを使用できます。

#!/bin/bash
if [ $# -ne 1 ] ; then
        echo "Usage $0 [directory]" 
        exit 1
fi
find $1 -type f  -print0 | while IFS= read -r -d $'\0' file; do
    (
    cd "$(dirname "$file")"
    filename="$(basename "$file")"
    md5sum "$filename" > "$filename".md5
    )
done

zshでは、現在のディレクトリの下にあるすべてのファイルに対して同じことが1行のコマンドで実行できます(ドットで始まるファイルを含む)。

for i in **/*(/D) ; do ( cd $i ; for j in *(.D) ; do md5sum $j > $j.md5 ; done ) ; done 
5
jofel

ネクロマンシーは確かですが、私たちは1つのライナーを愛する方法を知っています

#find / -type f  -exec md5sum {} + > CheckSums

個人的にはsha512sumを使用し、/ homeなどに制限しますが、rootをチェックサムしたい場合は、それを選択してください。

1
j0h