Estoy tratando de reflejar un directorio que cambia con el tiempo a otro directorio. Mi problema es que rsync no está eliminando archivos en el destino si ya no existen en el directorio de origen. Aquí hay un script de demostración:
#!/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
Aquí está la salida:
+ 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
Como puede ver, el archivo "a" todavía está presente en el directorio de destino después de que rsync se ejecuta por segunda vez, que no es lo que necesito. ¿Estoy haciendo mal uso de la opción '--delete'?