다음에서 복사하고 싶습니다./ㅏ에게/씨누락된 경로만/비그리고/씨. (이 경로는 경로이며 원격 위치(예: 를 통해 마운트됨)를 나타낼 수도 있다고 가정하십시오 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