![두 프로젝트의 파일 목록이 주어지면 어떤 파일이 동일한지 확인하는 방법](https://linux55.com/image/141954/%EB%91%90%20%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%9D%98%20%ED%8C%8C%EC%9D%BC%20%EB%AA%A9%EB%A1%9D%EC%9D%B4%20%EC%A3%BC%EC%96%B4%EC%A7%80%EB%A9%B4%20%EC%96%B4%EB%96%A4%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%EB%8F%99%EC%9D%BC%ED%95%9C%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
아래와 같이 동일한 파일 트리를 가진 project1
두 개의 프로젝트가 있습니다 .project2
.
├── src
│ ├── index.html
│ ├── main.js
│ ├── normalize.js
│ ├── routes
│ │ ├── index.js
│ │ └── Home
│ │ ├── index.js
│ │ └── assets
│ ├── static
│ ├── store
│ │ ├── createStore.js
│ │ └── reducers.js
│ └── styles
└── project.config.js
이제 각 트리의 다음 파일이 서로 동일한지 비교하고 싶습니다.
비교할 파일.txtsrc/main.js
src/routes/index.js
src/store/reducers.js
project.config.js
목록의 각 파일에 대해 별도의 명령을 실행하지 않고도 files-to-compare.txt 목록을 활용하는 단일 unix 명령을 사용하여 이를 달성할 수 있는 방법이 있습니까? 그렇다면 어떻게 해야 할까요?
편집 : 이것은 다른 질문입니다이것보다질문은 두 디렉토리의 모든 파일을 비교하는 것에 대해 묻기 때문입니다. 이 질문은 여러 디렉터리에 분산된 특정 파일에 대해 묻습니다. 다른 질문에 대한 답변에 포함될 수 있는 많은 내용을 제외합니다.
답변1
단일 명령이 아닌 단일 라인에서 각 명령에 대해 diff를 한 번씩 호출합니다.
while IFS= read -r filename; do diff project1/"$filename" project2/"$filename"; done < files-to-compare.txt
그러면 files-to-compare.txt 파일이 한 줄씩 읽혀집니다.전체 줄을 읽는 데 방해가 되는 것은 없습니다., diff
각 project1 및 project2 디렉터리에서 이 파일 이름을 사용하여 호출합니다.