我的目录结构如下
./model1
./model1/correct_data/file1.txt
./model1/bad_data/file1.txt
./model2
./model1/correct_data/file1.txt
./model1/bad_data/file1.txt
我只需要同步子目录file1.txt
中存在的内容。correct_data
rsync 可用于仅从file1.txt
所有子目录递归同步,如下所示
rsync -zarvL --prune-empty-dirs --include "*/" --include="file1.txt" --exclude="*"' <from> <to>
但是我不确定如何将同步添加到correct_data
子目录
答案1
我会用这个
(
cd {from} &&
rsync -zavLR */correct_data/file1.txt {to}/
)
新的成分是-R
将每个文件的源路径应用到目标根目录{to}
。我已删除,-r
因为它是由 暗示的-a
。仅-z
当目标实际上是远程目标时才相关。你真的有意吗-L
?
cd {from}
子 shell 保留命令的限制分数rsync
。