web-dev-qa-db-fra.com

Script Bash rsync: rsync: link_stat (blah) a échoué: aucun fichier ou répertoire de ce type (2)

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?

23
Nathaniel Ford

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

40
Martin Smith

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
7
garry_g