[linux] 두 개의 디렉토리 트리가 주어지면 어떤 파일이 내용에 따라 다른지 어떻게 알 수 있습니까?

두 디렉토리 트리의 차이점을 찾으려면 일반적으로 다음을 실행하십시오.

diff -r dir1/ dir2/

해당 파일 간의 차이점이 정확히 출력됩니다. 내용이 다른 해당 파일 목록을 얻는 데 관심이 있습니다. 나는 이것이 단순히 명령 줄 옵션을에 전달하는 문제라고 생각 diff했지만 매뉴얼 페이지에서 아무것도 찾을 수 없었습니다.

어떤 제안?



답변

당신은 리눅스를 말했다, 그래서 당신은 운이 좋다 (적어도 그것이 언제 추가되었는지는 확실하지 않다) :

diff --brief --recursive dir1/ dir2/ # GNU long options
diff -qr dir1/ dir2/ # common short options

필요한 것을해야합니다.

두 디렉토리 중 하나에 존재하지 않는 파일의 차이점도 보려면 다음을 수행하십시오.

diff --brief --recursive --new-file dir1/ dir2/ # GNU long options
diff -qrN dir1/ dir2/ # common short options


답변

내가 사용하는 명령은 다음과 같습니다.

diff -qr dir1/ dir2/

그것은 Mark의 것과 정확히 동일합니다 🙂 그러나 그의 대답은 다른 유형 의 플래그를 사용하므로 나를 귀찮게 하고 두 번 보이게했습니다. Mark의 더 자세한 플래그를 사용하면 다음과 같습니다.

diff  --brief --recursive dir1/ dir2/

다른 답변이 완벽하게 승인 된 경우 게시 해 주셔서 감사합니다. 스스로를 멈추지 못했습니다 …


답변

git diff --no-index dir1/ dir2/색상 차이를 표시 할 수 있기 때문에 (git config에 해당 옵션이 설정된 경우) “less”를 사용하여 긴 페이지 출력에 모든 차이를 표시하기 때문에을 사용 하고 싶습니다 .


답변

이 두 명령은 기본적으로 요청한 것을 수행합니다.

diff --brief --recursive --no-dereference --new-file --no-ignore-file-name-case /dir1 /dir2 > dirdiff_1.txt

rsync --recursive --delete --links --checksum --verbose --dry-run /dir1/ /dir2/ > dirdiff_2.txt

이들 사이의 선택은 dir1과 dir2의 위치에 따라 다릅니다.

디렉토리가 두 개의 별도 드라이브에 상주하면 diff가 rsync보다 성능이 우수합니다. 그러나 비교 된 두 디렉토리가 동일한 드라이브에 있으면 rsync가 더 빠릅니다. diff는 두 디렉토리의 병렬로드를 거의 동일하게하여 두 드라이브의로드를 최대화하기 때문입니다.

rsync는 실제로 체크섬을 비교하기 전에 큰 청크로 체크섬을 계산합니다. 이를 통해 I / O 작업을 큰 청크로 그룹화하고 단일 드라이브에서 작업을 수행 할 때보다 효율적인 처리가 가능합니다.


답변

Meld 는 또한 두 디렉토리를 비교할 수있는 훌륭한 도구입니다.

meld dir1/ dir2/

Meld에는 파일 또는 디렉토리를 비교할 수있는 많은 옵션이 있습니다. 두 파일이 다르면 파일 비교 모드로 들어가기 쉽고 정확한 차이점을 볼 수 있습니다.


답변

채널 노드 ‘청구서'(freenode / # centos fame)는 자신의 방법을 나와 공유했습니다.

diff -Naur dir1/ dir2

최종 디렉토리 슬래시를 포함하는 것은 중요하지 않습니다.

또한 -u일부 이전 / 서버 버전의 diff에서는이 옵션을 사용할 수 없습니다.

diffs의 차이점 :

# diff -Nar /tmp/dir1 /tmp/dir2/
diff -Nar /tmp/dir1/file /tmp/dir2/file
28a29
> TEST

# diff -qr /tmp/dir1/ /tmp/dir2/
Files /tmp/dir1/file and /tmp/dir2/file differ


답변

Diffoscope 는 훌륭한 명령 줄 기반 디렉토리 diff 도구입니다.

특히 파일 로 나눌 수 있다는 점이 마음에 듭니다 .

많은 종류의 아카이브를 재귀 적으로 풀고 다양한 이진 형식을보다 읽기 쉬운 형식으로 변환하여 비교합니다. 두 개의 타르볼, ISO 이미지 또는 PDF를 쉽게 비교할 수 있습니다.

어떤 파일이 다르고 어떻게 다른지 알려줍니다.