tree
我經常使用命令 andgrep
或命令在我的文件系統中搜尋文件find
,但最近我從網站下載了一些內容,但忘記了保存在哪裡,現在我知道它的 SHA256sum,但我不知道它的名字,但我不知道它的任何內容。那麼有什麼方法可以搜尋我的系統來查找與特定哈希和匹配的任何檔案嗎?如果沒有已經建立的簡單方法,有人可以建議一個腳本來讓我完成這個任務嗎?
作業系統資訊:
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
如果您想要搜尋您沒有所需權限的位置,請使用下列命令執行腳本。
請注意,此操作非常消耗 CPU 資源,因為它將計算所有檔案的雜湊值,然後嘗試與該雜湊值進行比對saved
。我不知道有任何獨立工具可以實現您想要的目標,因此考慮到手頭上的任務和輸入,這可能是可行的方法。
另請注意,您可以透過應用相關選項來最大程度地減少要搜尋的檔案量,例如,find
如果檔案在最近 24 小時內被存取過find /location -atime 0 -type f
。