CentOS 7에서 2개 디렉토리의 내용을 재귀적으로 비교합니다.

CentOS 7에서 2개 디렉토리의 내용을 재귀적으로 비교합니다.

애플리케이션의 빌드 프로세스는 CentOS 7 시스템에서 디렉토리 구조를 생성합니다. 동일한 서버의 두 번째 위치에 애플리케이션을 복사하고 몇 가지 사항을 변경한 후 빌드 프로세스를 다시 실행했습니다. 빌드 프로세스의 결과를 비교하고 싶습니다. 중첩된 모든 디렉터리와 각 빌드 프로세스에서 생성된 디렉터리의 파일을 반복적으로 비교하려면 터미널에 어떤 특정 명령을 입력해야 합니까?

보고 싶은 것:
1.) 어떤 파일이 다음에만 Directory1있지만아니요2. Directory2
) 어떤 파일이 다음에만 Directory2있지만아니요존재하다Directory1

Directory1이슬람 /home/user/nodejs_apps/angular2_oauth_seed_app/dist
Directory2국가:/home/user/nodejs_apps/angular2-esnext-starter/dist

이것은 내가 지금까지 입력한 내용이며 양방향에서 동일한 결과를 제공하는 것 같습니다. 이는 잘못된 것 같습니다.

[user@localhost angular2_oauth_seed_app]$ diff -r /home/user/nodejs_apps/angular2_oauth_seed_app/dist /home/user/nodejs_apps/angular2-esnext-starter/dist | grep /home/user/nodejs_apps/angular2_oauth_seed_app/dist
diff -r /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/boot.js /home/user/nodejs_apps/angular2-esnext-starter/dist/client/boot.js
diff -r /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/boot.js.map /home/user/nodejs_apps/angular2-esnext-starter/dist/client/boot.js.map
diff -r /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/index.html /home/user/nodejs_apps/angular2-esnext-starter/dist/client/index.html
diff -r /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/vendor.js.map /home/user/nodejs_apps/angular2-esnext-starter/dist/client/vendor.js.map
[user@localhost angular2_oauth_seed_app]$ diff -r /home/user/nodejs_apps/angular2-esnext-starter/dist  /home/user/nodejs_apps/angular2_oauth_seed_app/dist | grep /home/user/nodejs_apps/angular2-esnext-starter/dist
diff -r /home/user/nodejs_apps/angular2-esnext-starter/dist/client/boot.js /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/boot.js
diff -r /home/user/nodejs_apps/angular2-esnext-starter/dist/client/boot.js.map /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/boot.js.map
diff -r /home/user/nodejs_apps/angular2-esnext-starter/dist/client/index.html /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/index.html
diff -r /home/user/nodejs_apps/angular2-esnext-starter/dist/client/vendor.js.map /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/vendor.js.map
[user@localhost angular2_oauth_seed_app]$ 

답변1

표시되는 파일은 두 디렉터리 모두에 존재하지만다른;그게 바로 그들이 나타나는 이유입니다.

이 명령 중 하나를 실행하면 diff어떻게 생각하는지 확인할 수 있습니다.

예를 들어

diff -r /home/user/nodejs_apps/angular2-esnext-starter/dist/client/vendor.js.map /home/user/nodejs_apps/angular2_oauth_seed_app/dist/client/vendor.js.map

한 파일만 보고 다른 파일은 보지 않으려면 다음 줄로 시작합니다.Only in

따라서 이 간단한 트리에서는 다음과 같습니다.

$ mkdir X Y
$ touch X/1 Y/2
$ echo a file > X/a
$ echo different > Y/a
$ echo same > X/b
$ echo same > Y/b

한 디렉터리에는 있지만 다른 디렉터리에는 없는 파일, 두 디렉터리에 모두 있지만 서로 다른 파일, 동일한 두 디렉터리에 있는 파일이 있습니다.

$ diff -r X Y
Only in X: 1
Only in Y: 2
diff -r X/a Y/a
1c1
< a file
---
> different
$ 

두 개의 고유 파일과 변경된 파일을 보고하는 것을 볼 수 있습니다. 동일한 파일은 보고되지 않습니다.

관련 정보