Shell-Script

md5sum 檢查(無文件)

  • July 20, 2020

所以我正在嘗試使用 shell 腳本檢查幾十個文件。文件檢查發生在不同的時間。

有沒有辦法做到這一點?

md5sum -c 24f4ce42e0bc39ddf7b7e879a File.name

甚至更好的 sha512sum

sha512sum -c 24f4ce42e0bc39ddf7b7e879a File.name

現在我必須這樣做:

md5sum -c file.md5sums File.name

或者更好的是,我可以將所有 md5sum 放在一個文件中並像這樣檢查它們:

md5sum -c `sed 1p file.md5sums` File.name
md5sum -c `sed 2p file.md5sums` File.name
md5sum -c `sed 3p file.md5sums` File.name
md5sum -c `sed 4p file.md5sums` File.name

擁有數十個包含單個條目的文件似乎很愚蠢。

我能夠對多個文件執行 sha256sum,將輸出寫入文本文件並執行 a sha256sum -c sumfile,它似乎對我有用。

$ sha256sum $(find /etc/ -maxdepth 1 -type f) > test.txt
$ sha256sum -c test.txt
...
/etc/statetab: OK
/etc/sysctl.conf: OK
/etc/system-release: OK
/etc/system-release-cpe: OK
/etc/termcap: OK
/etc/updatedb.conf: OK
/etc/vconsole.conf: OK
/etc/vimrc: OK
/etc/virc: OK
/etc/yum.conf: OK
...
$ sha256sum --version
sha256sum (GNU coreutils) 8.22

md5sum實用程序與 GNU coreutils 集合中的所有其他類似實用程序一樣,能夠獲取校驗和文件並根據文件系統中的相應文件驗證這些文件。

假設我生成了這樣的校驗和文件:

$ md5sum /etc/* >sums
$ cat sums
e55afe6e88abb09f0bee39549f1dfbbd  /etc/afpovertcp.cfg
279f7ab7d2609163e5034738b169238b  /etc/aliases
5c1ba75b6d9d8cf921ec83e2a54c9bb5  /etc/asl.conf
[...]
d41d8cd98f00b204e9800998ecf8427e  /etc/xtab
32d37eb59a7c3735635db329adad86d7  /etc/zprofile
4efb8dbeb8f46ca3879666b313a2607f  /etc/zshrc

然後我可以一次性驗證所有這些校驗和,如下所示:

$ md5sum -c sums
/etc/afpovertcp.cfg: OK
/etc/aliases: OK
/etc/asl.conf: OK
[...]
/etc/xtab: OK
/etc/zprofile: OK
/etc/zshrc: OK

如果我誤解了您,而您只想從文件中的多個文件中檢查一個特定sums文件,那麼我會這樣做:

$ fgrep "/etc/xtab" sums | md5sum -c -

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