다음과 같은 폴더 구조가 있습니다.
.
├── bkp
├── dst
└── src
└── folder
└── file
다음 명령을 실행합니다.
rsync -t -r -b --backup-dir /tmp/rsyncTest/bkp/ /tmp/rsyncTest/src/ /tmp/rsyncTest/dst/
내 결과는 다음과 같습니다
.
├── bkp
│ └── folder
├── dst
│ └── folder
│ └── file
└── src
└── folder
└── file
내 질문은 다음과 같습니다
- bkp(backup-dir)에 빈 폴더가 생성되는 이유는 무엇입니까?
- 생성이 안되나요?
답변1
제가 보기에는 구문이 잘못된 것 같습니다. 아마도 이것이 예상대로 작동하지 않는 이유일 것입니다.
~에서man rsync
--백업 디렉터리=디렉터리
따라서 다음과 같이 보일 것입니다. 이것은 나에게 효과적이었습니다.
rsync -tbr --backup-dir=/tmp/rsyncTest/bkp/ /tmp/rsyncTest/src/ /tmp/rsyncTest/dst/
--backup
옵션은 --backup-dir
파일이 변경된 후에만 작동합니다. 예를 들어 디렉터리 src
에 3개의 파일이 있고 rsync
이 명령을 사용하여 한 번 동기화했다고 가정합니다. 그 중 하나를 삭제한 다음 다시 생성하고 파일에 여러 가지 변경 사항을 추가한 다음 rsync
명령을 다시 실행하면 해당 디렉터리의 이전 복사본이 dst
해당 디렉터리로 이동되고 --backup-dir
새 복사본이 귀하의 디렉터리에서 이동되었습니다 src
. 귀하의 디렉터리로 이동하세요. dst
변경 사항이 감지되지 않으면 디렉터리에 아무것도 저장되지 않습니다 bkp
.
답변2
rsync 옵션을 사용하여 새로 생성된 " "( macOS에서와 같이) folder
아래에 bkp
보이지 않는 메타파일을 확인 하고 제외합니다 ..DS_Store
ls -a .
--exclude
답변3
bkp에 "폴더"가 생성되는 이유는 --backup-dir 옵션 때문입니다. 이 옵션은 rsync에게 bkp를 백업 디렉터리로 지정하도록 지시합니다(즉, dst 폴더에 있는 기존 파일이 이 폴더로 이동됩니다). 이 폴더가 생성되지 않도록 하려면 이 옵션을 제거하기만 하면 됩니다.