管理

重複ファイルを安全に探す:チェックサムの一致と保存目的は別に確認

この記事はAIの支援を受けて原文を翻訳したものです。専門用語や数式は原文とあわせて確認してください。

report.pdfとreport-copy.pdfは同じかもしれませんが、名前だけでは証明できません。名前が違っても完全なコピーの場合があります。重複整理は、同じバイトを持つ候補を見つけ、その場所にある理由を確認する作業から始めましょう。検索結果は確認の資料であり、自動的な削除一覧ではありません。

名前やサイズで候補を探し、全体のチェックサムや必要なバイト比較を行い、用途を確認する。
図 1. 名前やサイズで候補を探し、全体のチェックサムや必要なバイト比較を行い、用途を確認する。

完全な重複と似た資料を区別する

ここで探すのはバイト単位で同じコピーです。画質設定の違う写真、メタデータを変更した画像、注釈を加えたPDFは、見た目が似ていても異なるファイルです。チェックサムは意味が同じかどうかを判断しません。「完全なコピーだけ」と範囲を決めると、有用な別版を不要と誤認しにくくなります。

容量が違えば同一バイトのコピーではありません。同じ容量でも内容が同じとは限らないため、容量は候補を絞る条件として使います。名前と更新日時も参考情報です。コピーや同期で日時が変わる場合があるので、それだけで最終判断はできません。

移動や削除をせずに計算する

MicrosoftのGet-FileHash文書は、ファイル内容のハッシュを計算し、標準ではSHA256を使うと説明しています。両候補を同じ方式で比較します。次のPowerShell例は指定ファイルを読んで結果を表示するだけです。自分のパスに置き換えて使います。

Get-FileHash -LiteralPath 'C:\Review\report.pdf' -Algorithm SHA256
Get-FileHash -LiteralPath 'C:\Review\report-copy.pdf' -Algorithm SHA256

GNUのSHA-2文書は、sha256sumなどの計算機能を紹介しています。別のOSでも、同じバイトを同じ方式で比べる原則は同じです。先頭数文字ではなく、ハッシュ文字列全体を確認します。

同一内容でも作業用とバックアップは役割が異なる。同一性と保存判断を分ける。
図 2. 同一内容でも作業用とバックアップは役割が異なる。同一性と保存判断を分ける。

一致後にも保存理由を確認する

SHA256の一致は通常の重複確認では非常に強い根拠です。厳密なバイト同一性が必要なら、直接バイト比較を追加できます。しかし、どちらもそのコピーが不要だとは教えてくれません。ハッシュは文書の出所が安全か、内容が本物かという証明でもありません。

確認すること理由
バックアップか意図的なコピーかもしれない
別の資料やアプリがこのパスを参照するか削除でリンクが壊れる可能性がある
共有フォルダーで必要か他の人がその場所を使っているかもしれない
どのコピーを基準に残すか保存判断を一貫させる必要がある

少数の候補から記録する

まず一つのフォルダーの数件を調べ、パス、容量、SHA256、保存理由を記録します。開けないファイルやオンラインのみのファイルは未確認と記します。読み取り中に内容が変わるファイルは比較が難しくなるため、保存済みで安定したコピーを使います。

未確認の候補一覧を再帰削除につなげないでください。整理後は節約容量だけでなく、資料やアプリが正常に開くか確認します。同一性を見つける技術と、保存の必要性を判断する仕事は別です。分けて考えることで、一致した文字列を削除命令と取り違えずに済みます。

あわせて読みたい記事

本文の理解を助けるために制作したオリジナルイラストです。