두 프로젝트의 파일 목록이 주어지면 어떤 파일이 동일한지 확인하는 방법

두 프로젝트의 파일 목록이 주어지면 어떤 파일이 동일한지 확인하는 방법

아래와 같이 동일한 파일 트리를 가진 project1두 개의 프로젝트가 있습니다 .project2

항목 1/, 항목 2/
.
├── src
│   ├── index.html
│   ├── main.js
│   ├── normalize.js
│   ├── routes
│   │   ├── index.js
│   │   └── Home
│   │       ├── index.js
│   │       └── assets
│   ├── static
│   ├── store
│   │   ├── createStore.js
│   │   └── reducers.js
│   └── styles
└── project.config.js

이제 각 트리의 다음 파일이 서로 동일한지 비교하고 싶습니다.

비교할 파일.txt
src/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 디렉터리에서 이 파일 이름을 사용하여 호출합니다.

관련 정보