모든 파일이 다른 경우 동일한 경로/이름 파일을 사용하여 한 드라이브에서 다른 드라이브로 재귀적으로 이동한 다음 파일 이름에 수정 시간을 추가하여 이전 파일의 이름을 바꿔야 합니다. 동일한 경로/이름을 가진 파일을 덮어씁니다. 파일 크기는 5K에서 500M까지입니다.
다음은 제가 만든 테스트 환경의 트리와 몇 가지 설명입니다.
/bmrlbackup/drive1/
`-- user001
`-- directory1
`-- project001
|-- file000 #identical
|-- file001 #older same name
|-- file0011 #unique
|-- phase1
| |-- file000 #identical
| |-- file110 #unique
| |-- file999 #newer same name
| `-- phase11
| `-- file111 #unique
`-- phase2
`-- file120 #unique
/bmrlbackup/drive2/
`-- user002
`-- directory2
`-- project001
|-- file000 #identical
|-- file001 #newer same name
|-- file0012 #unique
|-- phase1
| |-- file000 #identical
| |-- file210 #unique
| `-- file999 #older same name
`-- phase2
|-- file220 #unique
`-- phase21
`-- file221 #unique
rsync 이동 고유 파일 출력:
#rsync -a --ignore-existing --remove-source-files $sd1/ $dd1/
project001/
project001/file0011
project001/phase1/
project001/phase1/file110
project001/phase1/phase11/
project001/phase1/phase11/file111
project001/phase2/
project001/phase2/file120
이동할 남은 파일:
#remm="ls -1 $(find $sd1/ -type f)"
/bmrlbackup/drive1/user001/directory1/project001/file000
/bmrlbackup/drive1/user001/directory1/project001/file001
/bmrlbackup/drive1/user001/directory1/project001/phase1/file000
/bmrlbackup/drive1/user001/directory1/project001/phase1/file999
여기에서는 두 위치 모두 동일한 파일을 갖고 있으므로 이동하고 덮어써야 합니다.
/bmrlbackup/drive1/user001/directory1/project001/file000
/bmrlbackup/drive1/user001/directory1/project001/phase1/file000
이름은 같지만 내용이 다른 파일은 다음과 같습니다.
/bmrlbackup/drive1/user001/directory1/project001/file001
/bmrlbackup/drive1/user001/directory1/project001/phase1/file999
"이름은 같지만 내용이 다른" 파일을 비교해야 하며, 이전 파일의 이름을 바꾸고 수정 날짜와 시간을 추가해야 합니다. 따라서 소스가 최신인 경우 대상 파일의 이름을 추가하고 소스를 이동합니다. 소스가 더 오래되면 소스 이름을 추가하고 이름 추가 소스를 이동합니다.
이 프로세스의 결과로 결국 모든 파일이 드라이브 1에서 드라이브 2로 이동됩니다.
제발, 제발, 도와주세요!
답변1
"diff"를 사용하여 파일을 한 줄씩 비교할 수 있습니다. 이 게시물도 확인해 보세요.시간 찾기. 그런 다음 mv 명령을 사용하여 이전 파일을 이동할 수 있습니다
답변2
--update 및 --backup과 함께 rsync를 양방향으로 사용합니다.
-u, --update skip files that are newer on the receiver
-b, --backup make backups (see --suffix & --backup-dir)