copy_only_missing? - /B 및 /C가 누락된 경로의 /A에서 /C로만 복사합니다. 깔끔한 방법입니다.

copy_only_missing? - /B 및 /C가 누락된 경로의 /A에서 /C로만 복사합니다. 깔끔한 방법입니다.

다음에서 복사하고 싶습니다./ㅏ도착하다/씨길만 없어졌어/비그리고/씨. (이것은 경로이며 예를 들어 마운트를 통해 원격 위치를 나타낼 수도 있다고 가정하십시오 sshfs.)

나는 알고 싶다...루프를 작성하고, 파일 시스템을 반복하고, 파일별로 검사하는 것보다 더 깔끔한 방법이 있습니까?

트리 디렉터리의 콘텐츠 예/ㅏ,/비,/씨:

/ㅏ:

/A/1abc/qwe
/A/2abc/asd
/A/3abc/zxc
/A/4abc/rty

/비:

/A/2abc/asd
/A/3abc/zxc

/씨:

/C/1abc/qwe

예상: 다음에서 복사됨/ㅏ도착하다/씨고유 경로 4abc/rty:

/A/4abc/rty -> /C/4abc/rty

실제 사례를 들어 설명해 보세요/ㅏ,/비,/씨, 다음과 같은 시나리오로 이어집니다.

  • 일부에서 백업을 만듭니다./원천(/ㅏ) 일부에게는/목적지(/비) 및 일부 경로를 복사하지 못했습니다. 그래서 당신은 어쨌든 누락된 사본을 갖고 싶어합니다. 그래서 당신은 찾아/다른 목적지(/씨)을 수락할 수 있으며 누락된 항목만 복사하려고 합니다. 복제가 제한되는 이유에 대한 예는 다음과 같습니다./ㅏ도착하다/비실패할 수 있음: 디스크가 꽉 찼습니다./비(예: 파일 이름 길이), 존재하지 않지만/씨파일 시스템 등

답변1

한 가지 해결책은공동 설치B와 C(C가 쓰기 분기 역할을 함) 그런 다음 문제는 B+C에서 누락된 파일을 A에서 B+C로 복사하는 것으로 줄어듭니다. 이 작업은 다음을 통해 수행할 수 있습니다.

rsync -a --ignore-existing /A /B+C

공동 설치의 경우 한 가지 가능성은 다음과 같습니다.UnionFS 퓨즈.

unionfs-fuse -o cow /C=RW:/B=RO /B+C

또는 공용체:

mount -t unionfs -o dirs=/C=rw:/B=ro unionfs /B+C 

관련 정보