시간이 지남에 따라 다른 디렉토리로 변경되는 디렉토리를 미러링하려고합니다. 내 문제는 rsync가 소스 디렉토리에 더 이상 존재하지 않으면 대상의 파일을 삭제하지 않는다는 것입니다. 데모 스크립트는 다음과 같습니다.
#!/bin/sh
set -x
DIR1=/tmp/1
DIR2=/tmp/2
rm -rf $DIR1
rm -rf $DIR2
mkdir $DIR1
mkdir $DIR2
echo "foo" > $DIR1/a
echo "bar" > $DIR1/b
rsync -a $DIR1/* $DIR2
rm -f $DIR1/a
rsync -a --delete $DIR1/* $DIR2
ls -1 $DIR2
출력은 다음과 같습니다.
+ DIR1=/tmp/1
+ DIR2=/tmp/2
+ rm -rf /tmp/1
+ rm -rf /tmp/2
+ mkdir /tmp/1
+ mkdir /tmp/2
+ echo foo
+ echo bar
+ rsync -a /tmp/1/a /tmp/1/b /tmp/2
+ rm -f /tmp/1/a
+ rsync -a --delete /tmp/1/b /tmp/2
+ ls -1 /tmp/2
a
b
보시다시피, rsync가 두 번째로 실행 된 후에도 파일 "a"는 대상 디렉토리에 여전히 존재합니다. '--delete'옵션을 잘못 사용하고 있습니까?