ディレクトリ内のすべてのファイルのMd5チェックサムをリスト(および保存)し、そのリストをmd5sum.txt
というテキストファイルに保存したい
できたらいいですね
tree
コマンド内に統合します(フォルダーとファイルのツリー構造を作成します)find
(ディレクトリ内)を使用できます
find -type f -exec md5sum '{}' \; > md5sum.txt
md5sum.txt
ファイル自体を除外する場合は、次のようにします。
find -type f \( -not -name "md5sum.txt" \) -exec md5sum '{}' \; > md5sum.txt
ループを使用することもできます:再帰的なグロビングをオンにします
shopt -s globstar
次に、ディレクトリで:
for i in **; do [[ -f "$i" ]] && md5sum "$i" >> md5sum.txt; done
このファイルからファイル自体を除外することもできます。
for i in **; do
[[ -f "$i" ]] &&
[[ md5sum.txt != "$i" ]] &&
md5sum "$i" >> md5sum.txt
done
どちらもtree
のような構造を生成しません。ただし、開始ディレクトリからファイルへの相対パスを出力します。絶対パスが必要な場合は、find /path/to/directory ...
を使用します
後でグロブスターをオフにすることもできます(shopt -u globstar
)
次のコマンドを実行できます。
md5sum /path/to/directory/* > /path_to_result/md5sum.txt
結果ファイルの出力は次のようになります。
46684e3891d990acde2e723ee3d4e94a /var/log/alternatives.log
39cf1ebf93452ed5f8b240b35ae73f9f /var/log/alternatives.log.1
aa6c09c411d1d0870bca5f401d589332 /var/log/alternatives.log.2.gz