Debian

是否可以使用校驗和而不是名稱來搜尋文件?

  • November 9, 2018

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

引用自:https://unix.stackexchange.com/questions/480708