Rsync: rsync가 일부 파일을 이동하지 않습니다.

Rsync: rsync가 일부 파일을 이동하지 않습니다.

이것은 내 rsync명령입니다:

rsync -av --progress \
  --exclude=".*" \
  --exclude="target/*" \
  --exclude="src/main/docker" \
  --exclude="src/test" \
  ~/projects/workarea/arxius-linia/backend/ \
  ~/projects/workarea/arxius-linia/gene/backend/

그래도 다음과 같은 이유로 뭔가 동기화되지 않은 것 같습니다.

$ diff -qr --exclude=.git --exclude=".*" \
  ~/projects/workarea/arxius-linia/backend \
  ~/projects/workarea/arxius-linia/gene/backend

diff이 명령은 몇 가지 차이점을 제공합니다.

Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/constants: BookConstants.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/constants: ParticipateConstants.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/controller: BookDocumentationController.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/controller/impl: BookDocumentationControllerImpl.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/controller/impl: ParticipateControllerImpl.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/controller: ParticipateController.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/dao: BookDocDAO.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/dao: BookDocumentationRepository.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/dao: ParticipateDAO.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/dao: ParticipateRepository.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/dao: StatisticsDAO.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/domain: BookDocumentationDomainModel.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/domain: BookUnitDomainModel.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/domain/form: BookDocumentationFormModel.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/domain/form: ParticipateFormModel.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/domain: ParticipateDomainModel.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/service: BookDocumentationService.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/java/net/gencat/clt/arxius/backend/service: ParticipateService.java
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/resources/mailTemplates: MailParticipateArchive.ftlh
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/resources/mailTemplates: MailParticipateValidation.ftlh
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/resources/mailTemplates: SubjectParticipateArchive.ftlh
Only in /home/jeusdi/projects/workarea/arxius-linia/gene/backend/src/main/resources/mailTemplates: SubjectParticipateValidation.ftlh

어떤 아이디어가 있나요?

답변1

나열된 파일은 Only in ...모두 대상 디렉터리에 있습니다. 이는 rsync명령을 실행하기 전에 이러한 파일이 존재했음을 의미합니다.

대상 디렉터리에서 이러한 파일을 제거하려면 rsync옵션을 사용하여 명령을 실행할 수 있습니다 --delete. 이렇게 하면 소스 디렉터리 계층에 존재하지 않는 대상 디렉터리 계층의 모든 파일이 삭제됩니다. --delete-excluded또한 이 옵션을 사용하여 제외 패턴과 일치하는 대상에서 파일을 삭제해야 하는지 조사할 수도 있습니다.

먼저 데이터 복사본을 테스트하거나 최소한 --dry-run옵션(또는 )을 사용하여 어떤 파일이 삭제될지 -n확인 하고 항상 자주 백업하는 것을 고려하세요.rsync

관련 정보