![여러 버전의 폴더를 비교할 때 "diff -rq"가 새로 생성된 파일을 표시하지 않도록 하려면 어떻게 해야 합니까?](https://linux55.com/image/230033/%EC%97%AC%EB%9F%AC%20%EB%B2%84%EC%A0%84%EC%9D%98%20%ED%8F%B4%EB%8D%94%EB%A5%BC%20%EB%B9%84%EA%B5%90%ED%95%A0%20%EB%95%8C%20%22diff%20-rq%22%EA%B0%80%20%EC%83%88%EB%A1%9C%20%EC%83%9D%EC%84%B1%EB%90%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%ED%91%9C%EC%8B%9C%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8F%84%EB%A1%9D%20%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
두 폴더 (및 ) diff -rq
간의 차이점을 확인하고 있습니다. 예상되는 일이기 때문에 폴더에 새 파일이 있는지 알고 싶지 않습니다. 이러한 메시지가 표시되지 않도록 하려면 어떻게 해야 합니까?A
B
A
답변1
이제 실제 키보드에 대한 의견을 확장하겠습니다.
원하는 작업을 수행하는 유일한 방법은 파일을 개별적으로 비교하는 것입니다. 다음과 같이 조합하여 이를 find
수행 할 수 있습니다.xargs
(cd B && find . -type f -print0) | xargs -0 -IPATH diff -q A/PATH B/PATH
이는 최상위 디렉토리를 기준으로 B의 모든 파일 목록을 생성하고 xargs를 사용하여 diff -q
B의 파일을 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