![CentOS 7에서 2개 디렉토리의 내용을 재귀적으로 비교합니다.](https://linux55.com/image/91348/CentOS%207%EC%97%90%EC%84%9C%202%EA%B0%9C%20%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%9D%98%20%EB%82%B4%EC%9A%A9%EC%9D%84%20%EC%9E%AC%EA%B7%80%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EB%B9%84%EA%B5%90%ED%95%A9%EB%8B%88%EB%8B%A4..png)
애플리케이션의 빌드 프로세스는 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
$
두 개의 고유 파일과 변경된 파일을 보고하는 것을 볼 수 있습니다. 동일한 파일은 보고되지 않습니다.