각 폴더를 반복하여 구조를 비교하기 위해 각 디렉터리와 파일의 출력(텍스트 파일)을 나열해 보았습니다.
diff --brief -Nr dir1/ dir2/ > out.txt
내가 얻는 출력은 파일의 차이점에만 해당됩니다. 내가 원하는 출력은 폴더를 반복하고 폴더가 다른 디렉터리에 있는지 지정하는 것입니다. 이는 전체 구조, 파일 및 폴더에 적용됩니다.
cat out.txt
:
Files abc/def/xy.txt and pqr/def/xy.txt differ
Files abc/ooo/q.txt and pqr/ooo/q.txt differ
Files abc/ooo/t.txt and pqr/ooo/t.txt differ
답변1
두 개의 디렉토리 트리가 있다고 가정합니다: dir_one
및 dir_two
. 그런 다음 bash를 가정하면 다음과 같습니다.
모든 것을 나열하다둘 다 dir_one
그리고 dir_two
:
comm -12 <(cd dir_one ; find | sort) <(cd dir_two ; find | sort)
모두 나열해 보세요예에 존재 dir_one
하지만아니요존재하다 dir_two
:
comm -23 <(cd dir_one ; find | sort) <(cd dir_two ; find | sort)
마지막으로 모든 것을 나열하십시오.아니요에 dir_one
, 하지만예존재 지역 dir_two
:
comm -13 <(cd dir_one ; find | sort) <(cd dir_two ; find | sort)
답변2
내가 원하는 출력은 폴더를 반복하고 폴더가 다른 디렉토리에 있는지 지정하는 것입니다.
다음 디렉터리/파일을 고려하세요.
tree dir1/ dir2/
dir1/
|-- bar
|-- foo
`-- subdir_dir1
dir2/
`-- foo
이 변형이 귀하의 요구 사항을 충족하지 않습니까 diff
?
diff -rq dir1 dir2
Only in dir1: bar
Only in dir1: subdir_dir1