web-dev-qa-db-fra.com

rsync lançant mkdir: impossible de créer le répertoire ‘/ data / dir_1 / dir_2 / dir_3 /’: aucun fichier ou répertoire de ce type

J'ai monté un disque à /data. Ceci est vide pour le moment.

J'ai besoin de rsync pour exécuter mkdir -p que mkdir car le fichier I doit être au niveau 4, c.-à-d. /data/dir_1/dir_2/dir_3/filename quand dir_1, dir_2 et dir_3 n'existe pas.

Si je crée manuellement les sous-répertoires nécessaires, je peux exécuter rsync à l'aide de la commande suivante:

rsync -avz source_diretory/ /data/dir_1/dir_2/dir_3

Mais si je ne crée pas les sous-répertoires, cette commande génère une erreur:

mkdir: cannot create directory ‘/data/dir_1/dir_2/dir_3/’: No such file or directory

J'ai essayé Googling, en lisant la page de manuel de rsync, en utilisant -r-R mais je n'ai pas réussi à le faire fonctionner.

Est-ce que rsync peut exécuter quelque chose comme mkdir -p ou est-ce hors de sa portée?

3
dragosrsupercool

La commande rsync ne crée pas d'arborescence de répertoires, vous pouvez donc le faire en procédant comme suit:

 mkdir -p /data/dir_1/dir_2/dir_3

before rsync commande ou utilisez - rsync-path options:

--rsync-path = PROGRAMME Utilisez ceci pour spécifier quel programme doit être exécuté sur la machine distante pour démarrer rsync.

Votre commande devrait être:

 rsync -avz source_diretory/ --rsync-path="mkdir -p /data/dir_1/dir_2/dir_3 && rsync" /data/dir_1/dir_2/dir_3

Voici un utile lien .

5
Lety