我在 zsh 中有以下循环:
for x in my_folders*;
do
rsync -adrv $x/foo/bar/ /foo2/bar2/new_dir/$x/
done
new_dir
在调用 之前不存在rsync
,我想rsync
创建它以及复制操作所需的所有其他内容。
我正在传递rsync
标志d
,r
但它抱怨:
rsync: mkdir "/foo2/bar2/new_dir/item1" failed: No such file or directory (2)
它显然假设文件夹/foo2/bar2/new_dir/$x/
在复制之前就存在,但事实并非如此。有了这个:
- 有没有办法要求 rsync 创建任何复制操作工作所需的必要目录?
答案1
查看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