rmlint를 사용하여 두 개의 큰 폴더를 병합하는 방법은 무엇입니까?

rmlint를 사용하여 두 개의 큰 폴더를 병합하는 방법은 무엇입니까?

두 폴더를 병합하는 옵션을 탐색하는 동안 저는 다음과 같은 매우 강력한 도구를 발견했습니다.린트. 뭔가 유용한 게 있어문서(그리고부드러운 지도).

이전에 시나리오를 언급했는데 몇 가지 훌륭한 답변을 받았습니다.

체크섬 차이를 유지하면서 한 폴더에서 동일한 파일이 제거되도록 두 폴더를 병합하는 방법은 무엇입니까?

나는 rdfind그 대답을 향해 기울고 있었지만, 조사를 하던 중 우연히 rmlint개발자의 의견을 발견했습니다.논의하다반복적인 고립에 관한 문제는 매우 분명합니다.

이 모든 것을 검토하면서 나는 몇 가지 흥미로운 주장을 발견했습니다. --merge-directories --honour-dir-layout

그래서 나는 다음과 같은 만트라를 시도했습니다.

rmlint -T "bi,bl,df,dd" --progress --merge-directories --honour-dir-layout A B

불행하게도, 내 큰 장면에서 실행하려고 하는 저장된 명령은 꽤 크며 지금까지 실행하기 전에 어느 정도의 신뢰도를 구축하기 위해 테스트하기 위해 관리 가능한 작은 하위 집합을 격리할 수 없었습니다. 스크립트로 표시하는 대신 수행할 작업을 인쇄할 수 있도록 테스트 실행을 수행하여 수행할 작업을 시뮬레이션할 수 있는 방법을 찾으려고 했지만 찾지 못했습니다. 옵션(어쩌면 나는 단지 눈이 충혈되어 절망에 빠져 무시하고 있는 것일 수도 있습니다.)

그래서 저는 이에 대해 다음과 같은 질문을 제기할 수 있고 제기해야 한다고 생각합니다.

중복 데이터 세트를 성공적으로 병합한 사람이 있습니까 rmlint? 그렇다면 이전 질문의 목표를 합리적으로 충족할 수 있도록 두 폴더를 병합하는 데 어떤 매개 변수를 사용하는 것이 좋습니다?

간단히 반복하자면, 최종 목표는 B에 고유한 모든 것을 A에 넣는 동시에 A에 이미 존재하는 모든 것을 B에서 제거하고 A와 B 사이에 데이터 콘텐츠 충돌(즉, 고유하지 않은 콘텐츠)이 있는 모든 콘텐츠를 제거하는 것입니다. move 둘 다 수동 비교를 위해 유지되므로 실행 후 B에서 비교적 쉽게 찾을 수 있습니다.

답변1

실제로 rmlint보다 작업에 더 적합한 것 같습니다 rdfind. 실제로 의도하지 않은 작업을 수행하지 않는지 확인할 수 있는 쉘 스크립트를 출력한다는 점이 마음에 듭니다.

귀하의 사용 사례에 대해 저는 매뉴얼에서 다음을 논의하는 섹션에 매료되었습니다.원래 디렉토리 표시, 분명히 "원본" 디렉토리와 "중복" 디렉토리가 있기 때문입니다.

이 예는 이것을 시작점으로 사용할 수 있는 것처럼 보입니다.

# Find all files on /media/portable that can be safely deleted:
$ rmlint --keep-all-tagged --must-match-tagged /media/portable // ~

원래 디렉토리는뒤쪽에, 저는 약간 //놀랐습니다(기본적으로 이 도구는 파일을 다음 위치에 보관하는 것을 선호하는 것 같습니다).더 일찍토론). 그래서 rmlint --keep-all-tagged --must-match-tagged B // A.

(참고: 개인적인 경험은 없고 rmlint, 문서만 참고했습니다.)

관련 정보