15000 파일을 여러 번 효과적으로 비교하는 방법은 무엇입니까?
-
19-08-2019 - |
문제
무시 해야하는 숨겨진 .SVN 폴더를 포함하는 거의 동일한 두 개의 폴더를 비교하고 있으며 일부 파일이 변하지 않은 일치 파일을 다시 확인하지 않고 차이를 비교하여 폴더를 계속 신속하게 비교하려고합니다.
편집 : 옵션이 너무 많기 때문에 반복적 인 비교를 할 때 다른 솔루션이 실제로 가능하지 않기 때문에 이전 비교에서 지식을 명확하게 활용하는 솔루션에 관심이 있습니다.
해결책
약간의 돈을 기꺼이 소비하려는 경우, 비교할 수없는 비교는 폴더 기반 차이를 수행 할 수있는 매우 강력한 차이 도구입니다.
다른 팁
하나의 옵션은 사용하는 것입니다 rsync
. 같은 것 :
rsync -n -r -v -C dir_a dir_b
그만큼 -n
옵션은 드라이 런을 수행하므로 파일이 수정되지 않습니다. -r
재귀 비교를합니다. 선택적으로 Verbose 모드를 켜십시오 -v
. (사용할 수 있습니다 -i
대신 변경 사항을 항목으로 표시합니다 -v
.) 일반적으로 무시되는 파일을 무시합니다 .svn/
사용 -C
.
이것은 단순보다 빠릅니다 diff
내가 읽을 때 rsync
맨 페이지 :
rsync는 크기가 변경되거나 마지막으로 수정 된 시간에 변경된 파일을 찾는 "빠른 확인"알고리즘 (기본적으로)을 사용하여 전송 해야하는 파일을 찾습니다. 빠른 확인이 파일의 데이터를 업데이트 할 필요가 없음을 나타내는 경우 다른 보존 된 속성의 변경 사항 (옵션에 의해 요청 된)은 대상 파일에서 직접 이루어집니다.
"빠른 점검"알고리즘은 파일 내용을 직접 보지 않기 때문에 속일 수 있습니다. 이 경우 -c
체크섬을 대신 수행하는 옵션이 필요할 수 있습니다. 평범한 것보다 빠를 것입니다 diff
.
또한, 어느 시점에서 디렉토리를 동기화 할 계획이라면이 작업에도 좋은 도구입니다.
멍청하지는 않지만 타임 스탬프를 비교할 수 있습니다.
Total Commander를 사용하십시오! 모든 멋진 개발자가 사용합니다 :)
Linux 또는 변형에있는 경우 다음을 수행 할 수 있어야합니다.
프롬프트 $ diff -r dir1 dir2 -exclude = .svn
-R은 재귀 조회를 강제합니다. 공백 등과 같은 것들을 무시할 수있는 스위치가 많이 있습니다.