web-dev-qa-db-fra.com

Rsync créant le répertoire \ # 015

J'ai un serveur virtuel Ubuntu s'exécutant sur mon serveur Windows. Ce serveur a 2 disques durs externes attachés, qui sont montés dans Ubuntu.

Maintenant, j'essaie d'exécuter rsync pour synchroniser un répertoire sur mon bureau et sur mon serveur Windows.

Je fais ceci comme suit:

rsync -av --update [email protected]:/home/seagate/Syncfolder/Pictures/ /syncs/pictures

Le /syncs/pictures est un lien symbolique vers /cygdrive/c/../pictures. Tous ces liens symboliques fonctionnent correctement et le répertoire distant existe aussi.

Maintenant, quand je lance la commande rsync ci-dessus, elle fait ceci:

created directory /syncs/pictures\#015

Cela crée en fait un répertoire nommé "images" dans mon dossier/syncs /. Donc pas dans le lien symbolique. À côté du lien symbolique:

$ ls
pictures pictures?

Lorsque j'ajoute une barre oblique finale à la destination:

rsync -av --update [email protected]:/home/seagate/Syncfolder/Pictures/ /syncs/pictures/

Il crée un répertoire nommé "# 015" (le point bizarre) dans mon dossier Images actuel sur ma tour!

Je pense que cela a quelque chose à voir avec l'encodage?

J'ai écrit tous les scripts bash dans Notepad ++ avec encodage ANSI.

3

J'ai résolu ce problème en exécutant dos2unix sous Windows sur tous les fichiers de script. Vous pouvez également le faire sous Linux.

1

Le problème fondamental ici - du moins dans mon cas - était que le fichier en question avait la convention Windows d'un caractère CR + LF à la fin du fichier de script, par opposition à la convention * nix consistant à utiliser simplement LF seulement. Pour résoudre ce problème, vous devez modifier le fichier de script lui-même afin qu'il respecte les conventions * nix. La réponse ci-dessus suggère quelques bonnes façons de le faire. Certains éditeurs (Notepad ++, par exemple) intègrent des fonctionnalités similaires.

2
user239748