여러 버전의 폴더를 비교할 때 "diff -rq"가 새로 생성된 파일을 표시하지 않도록 하려면 어떻게 해야 합니까?

여러 버전의 폴더를 비교할 때 "diff -rq"가 새로 생성된 파일을 표시하지 않도록 하려면 어떻게 해야 합니까?

두 폴더 (및 ) diff -rq간의 차이점을 확인하고 있습니다. 예상되는 일이기 때문에 폴더에 새 파일이 있는지 알고 싶지 않습니다. 이러한 메시지가 표시되지 않도록 하려면 어떻게 해야 합니까?ABA

답변1

이제 실제 키보드에 대한 의견을 확장하겠습니다.

원하는 작업을 수행하는 유일한 방법은 파일을 개별적으로 비교하는 것입니다. 다음과 같이 조합하여 이를 find수행 할 수 있습니다.xargs

(cd B && find . -type f -print0) | xargs -0 -IPATH diff -q A/PATH B/PATH

이는 최상위 디렉토리를 기준으로 B의 모든 파일 목록을 생성하고 xargs를 사용하여 diff -qB의 파일을 A의 동일한 경로와 비교하는 일련의 명령을 실행합니다.

디렉터리의 내용이 동일한 경우 출력이 생성되지 않으며 반환 코드는 다음과 같습니다 0.

$ (cd B && find . -type f -print0) | xargs -0 -IPATH diff -q A/PATH B/PATH
$ echo $?
0

차이가 있으면 diff -q반환 코드와 함께 콘솔에 메시지를 인쇄합니다 123.

$ (cd B && find . -type f -print0) | xargs -0 -IPATH diff -q A/PATH B/PATH
Files A/./dir2/dir3/file1 and B/./dir2/dir3/file1 differ
$ echo $?
123

관련 정보