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?
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 .