Snow Leopardでの簡単なファイル比較

ファイルのハッシュ値を求める方法で、ファイル比較を行うには、次のようにします。

まず、ユーティリティにあるターミナルを起動して、md5と入力します。(以下、画面例ですが、私はzshに変更していることもあり、ちょっと表示が異なっています)

つづいて、比較したいファイルの一つ目をFinderからターミナルにD&Dします。(ファイルのフルパスを書くのが面倒なので)、さらに比較したいファイルの二つ目をD&Dして、Return(Enter)キーを押します。

[hogehoge@hoge-mac] $md5 /Users/typocoder/Documents/test.txt /Users/typocoder/Documents/test2.txt <<ここでReturnキーを押す>>
MD5 (/Users/typocoder/Documents/test.txt) = 46851f98468a11c3a75f488ee5099739
MD5 (/Users/typocoder/Documents/test2.txt) = 4d9d5462afff9bda0f3a60d9f060d622

= 以降の赤字のところが同一であれば、同じファイルだと確認できます。ただし、ハッシュ値を求める方法では、100%の一致は保証できません。ほぼ100%一致しているはずだ、というレベルで検証できるだけです。(実用上は、100%一致と思っていいと思います)

詳しいことを知りたい場合は、WikipediaなどでMD5を調べたり、ハッシュ関数のアルゴリズムを調べたりしてみてください。

ちなみに、OS Xで標準の方法でSHA1のハッシュを計算したい場合は、こんな方法を用いるのが正しいようです。(md5sumやsha1sumのコマンドがあればいいのになあ、と思います。もちろん、portsやFinkからインストールできるような気はしますし、rubyでちょっと作ってみた方もいらっしゃるようです)

#irbでちょこちょこっと出来る、というのは盲点でした。言われてみれば当たり前なのですが……。

#2009/09/18 8:32追記。あれ、なんかshasumってコマンドが入っててSHA1やSHA2が取れるなあ。中身はPerlのDigest::SHAらしいんだけど……何の関係で入っているんだろう。クリーンインストールじゃないからこれがSnowLeopardのデフォルトなのかも分からないな。




2 Comments

KatokichiSoft2009-09-18 at 09:27

md5はLeopardでも/sbinに入っているので通用しますね。
ちなみにshasum(sha1sumでしょうか?)は入っていませんでした。同じ機能にあたるgsha1sumはMacPortsのcoreutilsでインストールされるようです。

ご参考まで。

typocoder2009-09-18 at 09:39

確か10.2とか10.3ぐらいからmd5は入っているそうです。
shasumはsha1sumとは違うもので、Perl 5.10の構成物の一部のようです。manすると Perl Programmers Reference Guideとしてmanが表示されます。
/usr/bin下に入ってますね。

Additional comments powered by BackType