要求 rsync 创建*任何*必要的目录

Ame*_*ina 4 rsync files

我在 zsh 中有以下循环:

 for x in my_folders*; 
 do 
   rsync -adrv $x/foo/bar/ /foo2/bar2/new_dir/$x/
 done
Run Code Online (Sandbox Code Playgroud)

new_dir在调用 之前不存在rsync,我想rsync创建它,以及复制操作所需的所有其他内容。

我正在传递rsync标志dr但它抱怨:

rsync: mkdir "/foo2/bar2/new_dir/item1" failed: No such file or directory (2)
Run Code Online (Sandbox Code Playgroud)

它显然假设文件夹/foo2/bar2/new_dir/$x/在复制之前就存在,而事实并非如此。有了这个:

  • 有没有办法让 rsync 创建复制操作所需的任何必要目录?

Axe*_*auf 5

查看rsync手册页,我没有看到您的方案的选项。但是如何在开始同步之前手动添加目录,从而避免您的问题?

for x in my_folders*; 
do  
   mkdir -p "/foo2/bar2/new_dir/$x"
   rsync -adrv "$x/foo/bar/" "/foo2/bar2/new_dir/$x/"
done
Run Code Online (Sandbox Code Playgroud)