폴더 A의 모든 파일이 폴더 B에 있는지 어떻게 확인합니까?

폴더 A의 모든 파일이 폴더 B에 있는지 어떻게 확인합니까?

내 하드 드라이브의 일부 파일을 재구성하고 폴더의 이전 복사본이 있습니다. 내가 원하는 작업은 폴더 A(이전 복사본)의 모든 파일이 폴더 B에 있는지 확인하는 것입니다. 각 폴더에는 최소 200개의 파일이 포함되어 있습니다. 그 중 대부분은 중복되었을 가능성이 높습니다.

주의 사항: 파일 이름만 확인할 수는 없으며 파일의 내용이 동일한지도 확인해야 합니다(à la fdupes).

맨페이지에서 반대 작업을 수행할 수 있는 방법이 있는지 확인했습니다 fdupes(즉, 어떤 파일이~하지 않다복사본이 있음) 그러나 빈손으로 나왔습니다. 기능이 존재하더라도 여전히 폴더 B에만 존재하는 파일이 있습니다.

이 두 가지 질문은 비슷했지만 Windows에만 적용되었으므로 별로 도움이 되지 않았습니다.

미리 감사드립니다.

답변1

이미 중복 파일 목록이 있는 경우 모든 파일 목록과 비교하여 단일 파일을 찾으세요.

fdupes -r dir1 dir2 | grep -vwFf- <(find dir1 dir2 -type f)
  • -w전체 단어만 계산합니다(하위 문자열이 아니므로 파일이 abcd와 일치하지 않음 abc).
  • -F패턴을 정규 표현식이 아닌 문자 그대로 간주합니다.
  • -f지정된 파일( -이 경우 표준 입력)을 일치시킬 표현식 목록으로 사용합니다.
  • -v아시다시피 일치하지 않는 줄이 표시됩니다.

dir1이렇게 하면 폴더 중 하나에서만 발견된 파일이 포함된 목록이 출력됩니다 . 다음과 같이 폴더 A(아래 ) 의 이름을 훑어보거나 파악하여 해당 파일이 모두 폴더 B에 있는지 쉽게 확인할 수 있습니다.

fdupes -r dir1 dir2 | grep -vwFf- <(find dir1 dir2 -type f) | grep -F dir1

관련 정보