J'essaie d'écrire un script bash simple pour ma machine locale (Mac OS X) pour déplacer des fichiers d'un répertoire sur ma machine vers une machine distante. Cette ligne échoue:
rsync --verbose --progress --stats --compress --rsh=ssh \
--recursive --times --perms --links --delete \
--exclude "*bak" --exclude "*~" \
/repository/* $DEV_SERVER:$REMOTE_DIR
$DEV_SERVER
et $REMOTE_DIR
sont définis précédemment, et je les fais écho pour vérifier leur exactitude.
L'erreur que je reçois est:
rsync: link_stat /Users/myusername/mycurrentdirectory failed: No such file or directory (2)
A noter ici, plutôt que d'utiliser le répertoire défini (/repository
, qui est à la racine de la machine), il utilise mon répertoire de travail. Quelle est la cause de cela?
Vérifiez que vos caractères\n'ont pas d'espaces après la fin de la ligne, car cela empêchera BASH d'interpréter correctement le retour à la ligne, donnant l'erreur rsync ci-dessus
Supprimez le '*' de l'emplacement source, rsync sait regarder à l'intérieur du répertoire si vous spécifiez le '/' à la fin
comme ça:
rsync --verbose --progress --stats --compress --rsh=ssh --recursive --times --perms --links --delete --exclude "*bak" --exclude "*~" /repository/ $DEV_SERVER:$REMOTE_DIR