HOWTO · Bash

배쉬 md5sum 명령

이 튜토리얼은 Bash에서 md5sum 명령을 사용하는 방법을 보여줍니다.

이 페이지의 내용

이 튜토리얼은 Bash에서 md5sum 명령을 사용하는 방법을 보여줍니다.

배쉬 md5sum 명령

md5sum 명령은 주어진 파일에 대한 32자 및 128비트 체크섬을 인쇄합니다. 이 명령은 MD5 알고리즘을 사용하여 파일을 해시로 변환합니다. 이 명령의 구문은 다음과 같습니다.

md5sum [OPTION]... [FILEPATH]...

다음 내용이 있는 텍스트 파일에 대해 간단한 md5sum 명령을 실행해 보겠습니다.

Hello! this is md5sum command checking from delftstack.com

파일 이름은 delftstack1입니다. 이 파일에 대한 md5sum 명령은 다음과 같습니다.

md5sum delftstack1.txt

위 명령은 delftstack1.txt 파일을 md5 해시로 변환합니다. 결과 보기:

7a09013df4a60cc5eda609d03008c547  delftstack1.txt

--tag 옵션을 사용하여 이 출력을 BSD 형식으로 표시할 수도 있습니다.

md5sum --tag delftstack1.txt

이 명령의 출력은 다음과 같습니다.

MD5 (delftstack1.txt) = 7a09013df4a60cc5eda609d03008c547

md5sum에는 사용할 수 있는 다양한 옵션이 있습니다. 아래 표를 참조하십시오.

왼쪽 열 오른쪽 열
-b 바이너리 모드에서 결과를 읽는 데 사용됩니다.
-c 주어진 파일에서 MD5를 읽고 확인하는 데 사용됩니다.
–tag BSD 스타일 체크섬으로 출력을 얻는 데 사용됩니다.
-t 기본적으로 텍스트 모드로 읽기 위해 사용합니다.
–ignore-missing 누락된 파일에 대한 보고서 상태를 무시하는 데 사용됩니다.
–quiet 성공적으로 확인된 각 파일에 대해 OK 인쇄를 중지하는 데 사용됩니다.
–status 상태 코드가 성공으로 표시되는 항목의 출력을 중지하는 데 사용됩니다.
–strict 형식이 잘못된 체크섬 파일에 대해 0이 아닌 값에서 종료하는 데 사용됩니다.
-w 형식이 잘못된 체크섬 파일에 대해 경고하는 데 사용됩니다.

md5sum 명령은 한 번에 여러 파일에서 md5 사용, 수정된 파일만 표시, 유효하지 않은 해시 값 식별 등 다양한 방식으로 사용할 수 있습니다.

Bash에서 한 번에 여러 파일에 md5sum 사용

md5sum을 사용하여 여러 파일을 동시에 검증할 수도 있습니다. 두 개의 텍스트 파일을 더 만든 다음 한 번에 세 파일 모두의 유효성을 검사해 보겠습니다.

delftstack2.txt:

Hello! this is md5sum command checking from delftstack.com file 2

delftstack3.txt:

Hello! this is md5sum command checking from delftstack.com file 3

이제 한 번에 여러 파일의 해시를 가져오는 명령은 다음과 같습니다.

md5sum delftstack1.txt delftstack2.txt delftstack3.txt > hashes

위의 명령은 파일을 해시로만 변환하고 출력을 표시하지 않습니다. 출력을 표시하려면 다음 명령을 실행해야 합니다.

md5sum --check hashes

위의 명령은 파일이 성공적으로 해시로 변환되었는지 여부를 보여줍니다. 출력을 참조하십시오.

delftstack1.txt: OK
delftstack2.txt: OK
delftstack3.txt: OK

md5sum을 사용하여 Bash에서 수정된 파일 표시

md5sum 명령은 여러 파일에 md5sum을 적용하는 동안 수정된 파일을 표시할 수도 있습니다. 먼저 파일을 수정하려면 다음 명령을 사용하십시오.

echo "!" >> delftstack1.txt

위 명령은 delftstack1.txt 파일을 수정합니다. 이제 md5sum 옵션을 사용하여 수정된 파일을 표시해 보겠습니다.

다음 명령을 참조하십시오.

md5sum --quiet --check hashes

위의 명령은 수정된 파일을 찾고 출력에 이름을 인쇄합니다. 출력을 참조하십시오.

delftstack1.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match

md5sum을 사용하여 Bash에서 잘못된 해시 값 식별

잘못된 파일을 식별하는 옵션과 함께 md5sum 명령을 사용할 수도 있습니다. 이를 위해 -warn 옵션과 sed 명령을 사용하여 추가 문자를 삽입하여 파일을 무효화합니다.

첫 번째 명령을 참조하십시오.

sed -i '1s/.*/a&/' hashes

위의 명령은 출력의 첫 번째 줄에 추출 문자를 추가합니다. 이 명령의 출력을 참조하십시오.

sed: -e expression #1, char 2: extra characters after command

이제 --warn 옵션과 함께 md5sum 명령을 사용하여 잘못된 해시 값을 확인합니다. 다음 명령을 참조하십시오.

md5sum --warn --check hashes

위는 출력에 잘못된 해시 값이 있는 파일을 표시합니다. 출력을 참조하십시오.

delftstack1.txt: FAILED
delftstack2.txt: OK
delftstack3.txt: OK
md5sum: WARNING: 1 computed checksum did NOT match

Bash에서 파일 이름 없이 md5sum 출력 가져오기

보시다시피 md5sum은 파일 이름과 함께 해시 출력을 반환하지만 때때로 파일 이름 없이 출력을 가져와야 나중에 사용할 수 있습니다. 이에 대한 해결책은 텍스트 처리, 데이터 추출 및 보고 도구에 사용되는 도메인별 언어인 awk 명령입니다.

Bash에서 파일 이름 없이 출력을 얻으려면 다음 사항을 따르십시오.

  1. 출력을 변수에 할당합니다.
  2. 먼저 주어진 파일에서 md5sum을 실행하고 awk 명령을 사용하여 $1을 인쇄합니다.

다음 명령을 참조하십시오.

DemoMD5= md5sum delftstack1.txt | awk '{ print $1 }'

위는 md5sum 출력의 해시 출력만 반환합니다.

출력:

698ac7ad395a9c887b1abf3c9ded7abe

awk 명령을 사용하지 않으려면 파일 이름 없이 md5sum에서 해시 출력을 직접 가져올 수 있는 다른 방법이 있습니다. md5sum 출력을 배열에 할당한 다음 인쇄합니다.

다음 명령을 참조하십시오.

DemoMD5=($(md5sum delftstack1.txt))
echo $DemoMD5

위의 명령은 md5sum에 대한 파일 이름 없이 해시 출력을 직접 가져옵니다. 출력을 참조하십시오.

698ac7ad395a9c887b1abf3c9ded7abe