확인을 위해 다른 하드 드라이브에 복사하려는 파일로 가득 찬 폴더에 대한 체크섬을 어떻게 생성합니까?

확인을 위해 다른 하드 드라이브에 복사하려는 파일로 가득 찬 폴더에 대한 체크섬을 어떻게 생성합니까?

저는 2015 MacBook Pro를 사용하고 있으며 방금 OS 12.01 Monterey로 업데이트하고 터미널에서 zsh로 업데이트했습니다.

shasum -a 256다음을 사용하여 개별 파일에 대한 체크섬을 생성 할 수 있습니다 .

하지만 폴더에 대한 체크섬을 만드는 방법을 알아야 합니다.

그런 다음 비교 체크섬 스크립트나 명령을 생성하는 방법을 알아야 합니다.

답변1

이것은 "scratch"를 소스로 사용하고 "zork"를 새 복사본(아마도 다른 배포판에 있음)으로 사용하여 시작하려는 것입니다. 복사하는 동안 파일 타임스탬프가 보존되도록 이 -a플래그를 사용한다는 점에 유의하세요 .cp

% (cd scratch ; tar cf - .) | shasum -a 256
a17cacd171d6cbc2f6da028c8167b0602a1146a337f602de71529999fe471e0f  -

% /bin/cp -a scratch zork

% (cd zork ; tar cf - .) | shasum -a 256
a17cacd171d6cbc2f6da028c8167b0602a1146a337f602de71529999fe471e0f  -

두 합계를 직접 비교하려면 다음을 사용할 수 있습니다.

if [[ $((cd scratch ; tar cf - .) | shasum -a 256) == $((cd zork ; tar cf - .) | shasum -a 256) ]]
then
  echo match
else
  echo no match
fi

관련 정보