각 디렉터리에 있는 모든 파일 간의 해시를 확인하여 두 디렉터리를 비교하고 sha256 해시를 사용하여 두 디렉터리가 서로 == 서로인지 확인합니다.
답변1
hash
함수와 명령을 사용하여 두 디렉터리를 비교할 수 있습니다 . 예를 들면 다음과 같습니다.
cd dir1; sha256sum * >../hash_file
cd ../dir2; sha256sum -c ../hash_file >/dev/null 2>&1
EXITCODE=$?
종료 코드 0은 디렉터리의 파일이 동일함을 의미합니다. 하위 디렉터리가 있으면 제대로 작동하지 않을 수 있습니다.
답변2
디렉터리에 있는 각 파일의 내용을 단일 해시에 반복적으로 포함하려면 find
모든 일반 파일을 찾아 cat
exec를 사용하여 연결하고 파이프한 후 sha256sum
다음과 같이 파일에 저장할 수 있습니다.
find dir1 -type f -exec cat '{}' + | sha256sum > hash1
find dir2 -type f -exec cat '{}' + | sha256sum > hash2
diff -q hash1 hash2