ハッシュサムを使ってファイルを検索する方法

ハッシュサムを使ってファイルを検索する方法

tree私は、コマンドとgrep、またはコマンドを使用してファイル システム内のファイルを頻繁に検索していますfindが、最近、サイトからコンテンツをダウンロードしましたが、保存場所を忘れてしまいました。その SHA256 ハッシュ サムはわかっていますが、名前も内容もわかりません。システムを検索して、その特定のハッシュ サムに一致するファイルを見つける方法はありますか? また、すでに簡単な方法が組み込まれていない場合、このタスクを完了できるスクリプトを提案してもらえますか?


OS情報:

Description:    Ubuntu 15.04
Release:    15.04

答え1

これを使って:

#!/bin/bash
saved='b3eeb9430063ee4db5f80b97d4dfb4c4f7667e6e58fd12f849a4ed6779b7f212'
find /home/user/ -type f | while IFS= read -r file; do
    [[ "$(sha256sum "$file" | cut -d' ' -f1)" == $saved ]] && echo "$file"
done
  • savedあなたが持っているファイルのハッシュサムが含まれます

  • /home/user/(任意の場所に置き換えてください)とサブディレクトリ内のすべてのファイルを検索し、それらのハッシュサムをsaved

  • 一致した場合はファイル名を出力します

sudo必要な権限がない場所を検索する場合は、を使用してスクリプトを実行します。

この操作は、すべてのファイルのハッシュを計算してから 1 つと一致させようとするため、CPU をかなり消費することに注意してくださいsaved。必要な機能を実現できるスタンドアロン ツールは知りませんので、タスクと入力内容を考慮すると、これが最適な方法かもしれません。

また、関連するオプションを適用することで、検索するファイルの量を最小限に抑えることができることにも注意してください (findたとえば、ファイルが過去 24 時間以内にアクセスされた場合など) find /location -atime 0 -type f

関連情報