Debian
是否可以使用校驗和而不是名稱來搜尋文件?
test1.txt
假設我想進行搜尋以了解我是否有一個與使用以下命令從文件生成的 sha256 匹配的文件:sha256sum -b test1.txt
我得到輸出:
e3d748fdf10adca15c96d77a38aa0447fa87af9c297cb0b75e314cc313367daf * test1.txt
所以,我想找到與生成的校驗和匹配的文件,而不是使用名稱。
這可能嗎?
find . -type f -exec sha256sum -b {} + | grep -F 'e3d748fdf10adca15c96d77a38aa0447fa87af9c297cb0b75e314cc313367daf'
這將為目前目錄中或下的每個文件計算 SHA256 校驗和。最後
grep
的 將提取與您正在尋找的校驗和匹配的計算結果。如果
find
操作的結果被轉移到一個文件中,它可以作為一個“數據庫”,你可以用它來對grep
. 如果添加了一些額外的邏輯,您可以創建一個 cron 作業,使用新文件和更新文件中的資訊定期刷新此文件並刪除舊資訊(這並不是這個問題的真正含義,所以我將保留任何程式碼暫且)。無需太多額外的努力,您甚至可以針對簡單的 SQLite 數據庫執行此操作。與命令的語法相關
find
: