파일 내용의 차이를 확인하지 않고 디렉터리를 다른 내용의 다이제스트와 반복적으로 비교합니다.

파일 내용의 차이를 확인하지 않고 디렉터리를 다른 내용의 다이제스트와 반복적으로 비교합니다.

두 디렉터리의 내용을 재귀적으로 비교하여 어느 파일이 어느 디렉터리에 없는지, 어떤 파일이 다른 내용을 가지고 있는지 보여주고 싶습니다. 하지만 파일 내의 차이점을 출력하고 싶지는 않습니다. 단지 파일이 다른지 여부만 출력하고 싶습니다. 걱정할 링크가 없습니다.

중복된 내용이 아니길 바랍니다. 예제를 살펴봤지만 답을 찾을 수 없습니다. 감사해요

답변1

일반적으로 이 정도면 충분해 보입니다.

diff -rq dirA dirB

답변2

아쉽게도 diff -rq고려되지 않았습니다유니코드에 해당파일 이름에. SanDisk 외장 SSD는 Mac 노트북과 다른 유니코드 파일 이름 바이트코드를 사용하기 때문에 문제가 발생합니다.

예를 들어 내 MacBook에는 다음과 같은 파일이 있습니다.

tmp/Česky.txt
tmp/Česky/README.txt

내 SSD에는 다음이 있습니다정확히 똑같다문서:

/Volumes/MySSD/Česky.txt
/Volumes/MySSD/Česky/README.txt

이름은 브라우저에서 정확히 동일하게 보이지만 내 컴퓨터에서는 실제로 다릅니다. Python에서 다양한 바이트코드가 주어지면:

# python3
>>> 'Česky'.encode()
b'C\xcc\x8cesky'
>>> 'Česky'.encode()
b'\xc4\x8cesky'

내가 실행하면 diff -rq tmp/ /Volumes/MySSD/다음을 얻습니다.

Only in /Volumes/MySSD/: Česky
Only in /Volumes/MySSD/: Česky.txt
Only in tmp/: Česky
Only in tmp/: Česky.txt

이 파일을 노트북에서 외장 드라이브로 복사하더라도! 파일의 내용은 동일합니다.

동일한 문제를 피하려면 다음을 사용할 수 있습니다.이 Python 스크립트디렉터리를 비교하는 데 사용됩니다.

관련 정보