2009年2月28日土曜日

任意のディレクトリ以下のファイル全部でメッセージダイジェスト(ハッシュ) を取得

メモエントリ
 
 

find でフルパスを貰って、xargs に投げるというだけだがメモ。
 

# find /etc -type f -exec ls -1d {} \; | xargs openssl dgst -sha1
 
"/etc" 以下で 属性がファイルのものをフルパス表示させて片っ端から openssl に投げてハッシュを出力する。
(これは sha1 でやってるけど、デフォルトの md5 のほうがはるかに早いです)
 

"/etc" 出力例
SHA1(/etc/logrotate.conf)= 7b323754d7a2235d2af27d033d0d9f4bc04d702d
SHA1(/etc/pcmcia/config.opts)= 0a5c34714920af23596fbf8b7e88ae8b1a32e9d3
SHA1(/etc/scsi_id.config)= fa2ed8a92d90c965842f2e5ca763fc02a89672f3
-- snip --
SHA1(/etc/modprobe.d/modprobe.conf.dist)= 950ba44077e82aaf2a17d11f2900e94cab208f8b
SHA1(/etc/modprobe.d/blacklist-firewire)= de82c03c535e9deb16aed94153883280891da2d7
SHA1(/etc/mail.rc)= 9197e3c08646d0be585103d88d041182460ca0e5

 

ディレクトリをコピーや移動して、心配な時に diff に食わせる。