O código original era
DRYRUN="-n"
DRYRUN=""
...
rsync "${DRYRUN}" -avushi --stats --progress --log-file="${LOGFILE}"
/media/dataspace/data/webcasts/ "${MOUNT}${DESTDIR}"
Código de trabalho é
DRYRUN=1 ## for testing rsync without any file transfers
DRYRUN=0 ## for live run
...
if (( ${DRYRUN} ))
then
rsync -n -avushi --stats --progress --log-file="${LOGFILE2}" /media/dataspace"${DESTDIR2}"/ "${MOUNT}${DESTDIR2}"
else
rsync -avushi --stats --progress --log-file="${LOGFILE2}" /media/dataspace"${DESTDIR2}"/ "${MOUNT}${DESTDIR2}"
fi
"Nós encontramos o inimigo e ele somos nós!" - Walt Kelly (tira em quadrinhos Pogo)
Eu encontrei! Invisível não significa que não esteja lá.
Eu não entendo muito bem o que aconteceu, mas, colocando "$ {DRYRUN}" na linha de comando rsync, ele fez o primeiro argumento para rsync "". Aparentemente isso tem interpretado como PWD em vez de um erro. Então o comando foi transferência "" e minha fonte real para o meu destino real porque o rsync aceita múltiplos fontes.
A pergunta restante é por que o rsync acha que "" significa o diretório atual em vez de interpretá-lo como um erro de sintaxe?