仅递归同步远程服务器特定子目录中的特定文件

仅递归同步远程服务器特定子目录中的特定文件

我的目录结构如下

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

相关内容