test.txt와 test.txt.md5라는 두 개의 파일이 있습니다. test.txt의 체크섬을 확인하고 싶습니다.
Gnu 도구 md5sum에는 "[md5-hash][space][space][filename]"(md5sum -c test.txt.md5) 형식의 md5 파일이 필요합니다. 불행하게도 내 test.txt.md5에는 md5 해시만 포함되어 있습니다(공백과 파일 이름 없음).
"test.txt.md5" 파일의 해시를 "md5sum -c" 명령으로 전달하는 방법은 무엇입니까? stdin을 사용해야 할 것 같지만 내가 본 모든 예제는 md5sum 파일 형식을 다시 만들려고 시도했습니다.
파일 내용은 다음과 같습니다.
test.txt
:
test
그리고 test.txt.md5
:
d8e8fca2dc0f896fd7cb4cb0031ba249
답변1
많은 명령과 마찬가지로 옵션 값이 (from )인 경우 md5sum
표준 입력에서 읽을 수 있습니다.-
man md5sum
MD5(128비트) 체크섬을 인쇄하거나 확인합니다. 파일이 없거나FILE이 -이면 표준 입력을 읽습니다..
파일 이름을 알고 있으므로 간단히 md5 파일의 내용과 몇 개의 공백을 인쇄한 다음 이름을 인쇄하고 다음으로 전달할 수 있습니다 md5sum
.
$ cat test.txt.md5
5a6d311c0d8f6d1dd03c1c129061d3b1
$ md5sum -c <(printf "%s test.txt\n" $(cat test.txt.md5))
test.txt: OK
또 다른 옵션은 파일에 파일 이름을 추가하는 것입니다.
$ sed -i 's/$/ test.txt/' test.txt.md5
$ md5sum -c test.txt.md5
test.txt: OK
답변2
파일의 MD5 체크섬을 다시 계산하여 다음에 저장된 체크섬과 비교할 수 있습니다 test.txt.md5
.
cmp test.txt.md5 <(md5sum test.txt | cut -d\ -f1)
출력이 없으면 체크섬이 일치합니다.