문제

CS와 수학에만 포함 된 큰 디렉토리가 있습니다. 크기가 16GB 이상입니다. 유형은 텍스트, PNG, PDF 및 CHM입니다. 나는 현재 두 가지 지점이 있습니다 : 내 동생과 내 지점. 초기 파일은 동일했습니다. 비교해야합니다. 나는 git을 사용하려고했지만 로딩 시간이 길다.

두 개의 큰 디렉토리를 비교하는 가장 좋은 방법은 무엇입니까?

혼합 솔루션

  1. 두 디렉토리 모두에서 "ls -r> miver_files"를 수행 [1
  2. "sdiff <(echo file1 | md5deep) <(echo file2 | md5deep)[2

어떻게 생각해? 단점이 있습니까?

1] Paul Tomblin에게 감사합니다 [2] 모든 Repiers에게 감사드립니다!

도움이 되었습니까?

해결책

기존 명령/제품없이 2 개의 폴더를 비교하는 방법 :

각 디렉토리를 스캔하고 각 파일의 파일 해시를 생성하는 프로그램을 만듭니다. 각 상대 파일 경로와 파일 해시와 함께 파일을 출력합니다.

두 폴더 에서이 프로그램을 실행하십시오.

그런 다음 2 개의 출력 파일을 비교하여 동일인지 확인합니다. 이 두 파일을 비교하려면 문자열에로드하고 문자열 비교를합니다.

사용하는 해싱 알고리즘은 중요하지 않습니다. MD5, SHA, CRC를 사용할 수 있습니다 ... 출력 파일의 파일 크기를 사용하여 충돌 가능성을 줄일 수 있습니다.

기존 명령/제품과 2 개의 폴더를 비교하는 방법 :

이제 프로그램을 원한다면 사용하십시오. diff -r 또는 Windiff Windows 기반 시스템의 경우.

다른 팁

fslint 사용 : 웹 사이트. 도구의 옵션 중 하나는 "복제"입니다. 사이트의 설명에 따라 : FSLINT의 가장 일반적으로 사용되는 기능 중 하나는 중복 파일을 찾는 기능입니다. 하드 드라이브에서 Lint를 제거하는 가장 쉬운 방법은 존재할 수있는 중복 파일을 폐기하는 것입니다. 컴퓨터 사용자는 종종 다른 이름이나 디렉토리 아래 음악 컬렉션에 동일한 노래의 4, 5 또는 더 많은 사본이 있다는 것을 알지 못할 수 있습니다. 음악, 사진 또는 작업 문서 등 모든 파일 유형을 컴퓨터에서 쉽게 복사하고 복제 할 수 있습니다. 복제물이 수집됨에 따라 사용 가능한 하드 드라이브 공간에서 먹습니다. FSLINT에서 제공하는 첫 번째 메뉴 옵션을 사용하면 이러한 중복 파일을 찾아 제거 할 수 있습니다.

사용 md5deep 해당 디렉토리의 모든 파일의 재귀 MD5SUM 목록을 작성합니다.

Diff 도구를 사용하여 생성 된 목록을 비교할 수 있습니다.

다른 파일에 존재하지 않는 파일을 발견하려고 노력하고 있습니까? 몇 가지 제안 :

  1. 두 디렉토리 모두에서 "LS -R"을 수행하고 파일로 리디렉션하고 파일을 차단하십시오.

  2. 그들 사이에 "rsync -n"을 수행하여 복사 할 수있는 경우 rsync를 복사 해야하는 것을 확인하십시오. (-n은 rsync를하지 않는다는 것을 의미합니다.

나는 할 것이다 diff출력을 비교하여 md5sum * | sort

다른/누락 된 파일로 이동합니다.

나는이 질문에 이미 답변이 있다는 것을 알고 있지만, 당신이 그러한 도구를 직접 쓰지 않는다면, 이름으로 잘 작동하는 오픈 소스 프로젝트가 있습니다. 타르 디프 기본적으로 원하는 것을 수행하는 SourceForge에서 사용할 수 있으며 차이를 설명하기 위해 자동화 된 패치 생성 (타르 형식)도 지원합니다.

도움이 되었기를 바랍니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top