2개의 디렉토리에 동일한 내용이 있는지 확인하는 방법

2개의 디렉토리에 동일한 내용이 있는지 확인하는 방법

두 개의 서로 다른 디렉토리에 정확히 동일한 내용이 있는지 확인하는 쉬운 방법은 무엇입니까?

답변1

find, sha1sum및 일련의 파이프를 조합하면 이 목표를 달성할 수 있습니다.

find /path/to/files -type f -print0 | sort -z | xargs -0 sha1sum | cut -c1-40 | sha1sum

그러면 다음과 같은 출력이 제공됩니다.

98f3a7c54a8f51dd86506a26d4d3bd90e6e4b821  -

메모:물론 후행 대시는 무시할 수 있습니다.

확인하려는 경로에서 이것을 실행하면 두 디렉터리가 동일한지 여부를 확인할 수 있습니다. 그렇지 않은 경우 명령 편집을 시작하여 다른 파일을 찾을 수 있습니다. 시간이 많이 걸리기는 하지만 이를 수행하는 간단한 방법 중 하나는 를 제거하는 것입니다 | cut -c1-40 | sha1sum. 그러면 각 파일과 해당 sha1 해시가 나열됩니다.

어떻게 작동하나요?

  설명
find /path/to/files /path/to/files디렉토리 에서 항목 목록을 반환합니다.
-type f 파일만 포함
-print0 표준 출력에 전체 파일 이름을 인쇄하고 그 뒤에 널 문자가 옵니다.
| 그런 다음
sort -z 줄 바꿈 대신 줄 구분 기호로 null을 사용하여 목록을 정렬합니다.
| 그런 다음
xargs -0 sha1sum 목록의 각 값을 다음을 통해 실행합니다.sha1sum
| 그런 다음
cut -c1-40 가져가다단지처음 40자(sha1의 길이)
| 그런 다음
sha1sum sha1 목록의 sha1 해시를 생성합니다.

관련 정보