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
。