2011-04-10 5 views
2

커스텀 디렉토리/폴더 병합 도구를 개발하는 것은 기능 프로그래밍 학습의 일부로 생각할뿐만 아니라 매우 개인적인 가려움증을 찰싹 때리기위한 것입니다.커스텀 디렉토리/폴더 머지 도구

저는 보통 세 가지 컴퓨터에서 작동하며 로컬 파일 (텍스트, 비디오, 오디오)을 많이 축적 한 다음 백업을 위해 고의로 병합하는 경향이 있습니다. 나는 낭비와 쓸데없는 파일들이 공간을 낭비하는 것을 막고 있다고 확신한다. 보조 백업 소스로 클라우드 백업 솔루션으로 이동하면서 중복 파일을 제거하여 최대한 많은 공간을 절약하려고합니다.

나는 복잡한 깊숙이 중첩 된 디렉토리 구조를 가지고 있으며 폴더 트리를 자동으로 내리고 병합을 수행하는 자동화 도구가 필요합니다. 또 다른 문제는 내가 리눅스와 윈도우의 혼합을 사용하고 내 파일의 많은 부분에 이름에 공백이 있다는 것입니다 ...

필자의 초기 생각은 모든 파일에 대해 해시를 생성하고 파일 이름보다는 해시 (파일 이름뿐만 아니라 폴더 이름의 공백도 소스와 대상 사이에서 다를 수 있습니다). RIPEMD-160은 성능과 충돌 회피간에 우수한 균형을 유지합니까? 또는 SHA-1이면 충분합니까? SHA-256/512 과용은 있습니까?

이러한 해시를 생성하기 위해 준비된 라이브러리 집합과 함께 제공되는 기능적 프로그래밍 env에는 어떤 것이 있습니까? 나는 OCaml쪽으로 기울고있다. ...

+0

왜 바퀴를 다시 발명하고 있습니까? git과 github는 어떨까요? –

+0

대형 바이너리 파일에는 힘내는 효과가 없습니다. 하지만 git-annex 나 비슷한 git add-on 소프트웨어로 git을 시도해 볼 수도 있습니다. 그것이 당신의 유스 케이스에 적합한 지 확신 할 수 없다. –

+0

다음은 [뻔뻔한 플러그] (http://alaska-kamtchatka.blogspot.com/2011/02/finding-duplicate-files-on-batteries.html)입니다. –

답변

8

Unison file synchronizer을 확인해라.

저는 직접 사용하지 않지만 긍정적 인 리뷰를 많이 들었습니다. 그것은 이론적 기반을 바탕으로 한 성숙한 소프트웨어입니다.

또한 OCaml로 작성되었습니다.