그래서 수십 개의 파일을 확인하기 위해 쉘 스크립트를 사용해 보았습니다. 파일 검사는 서로 다른 시간에 발생합니다.
이를 수행할 수 있는 방법이 있습니까?
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
단 하나의 항목으로 수십 개의 파일을 갖는 것은 어리석은 것 같습니다.
답변1
여러 파일에 대해 sha256sum을 수행하고 출력을 텍스트 파일에 쓴 다음 sha256sum을 실행할 수 있었는데 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
답변2
GNU coreutils 컬렉션의 다른 모든 유사한 유틸리티와 마찬가지로 이 md5sum
유틸리티는 체크섬 파일을 얻고 파일 시스템의 해당 파일과 비교하여 확인할 수 있습니다.
다음과 같은 체크섬 파일을 생성했다고 가정해 보겠습니다.
$ 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 -
답변3
스크립트에서 이 작업을 수행하면 다음과 같은 간단한 비교 검사를 수행할 수 있습니다.
if [ "$(md5sum < File.name)" = "24f4ce42e0bc39ddf7b7e879a -" ]
then
echo Pass
else
echo Fail
fi
추가 공백과 -
md5sum의 출력과 일치해야 하는 필요성에 유의하세요.
더 깨끗해 보이면 한 줄로 만들 수 있습니다
[[ "$(md5sum < File.name)" = "24f4ce42e0bc39ddf7b7e879a -" ]] && echo Pass || echo Fail
답변4
단일 파일의 경우 bash에서 이 작업을 수행하여 문자열을 파일로 전달할 수 있습니다.
md5sum -c <(echo "24f4ce42e0bc39ddf7b7e879a File.name") File.name