如何用rsync重写目标路径?

时间:2015-09-18 14:14:08

标签: rsync

您好我想使用rsync将数据从sourcehost移动到desthost,但目录结构不是我想要的100%。

sourcehost

  • crappy_dir
    • another_crappy_dir
      • i_like_this_one
        • 和_t这也是
          • 文件

desthost应该:

  • my_cool_dir
    • i_like_this_one
      • 和_t这也是
        • 文件

这是我的files_to_include.txt

/crappy_dir/another_crappy_dir/i_like_this_one/and_this_too/file

和我目前的测试rsync命令:

desthost# rsync -aAHXv -e ssh --files-from=files_to_include.txt sourcehost:  /my_cool_dir

但它会创建

/my_cool_dir/crappy_dir/another_crappy_dir/i_like_this_one/and_this_too/file

rsync中是否有任何选项可以重新编写目标路径?让我们说像--magical-dest-transformation "s@/crappy_dir/another_crappy_dir/@/@"这样神奇的perl-like-regexp会这样做。我也无法提出一个好的--rsync-command选项。欢迎提出建议。

注意:这是一个数TB的多主机副本,需要几天时间才能完成,复制后的“简单mv”不够好,因为我会多次重新运行rsync。我需要它足够聪明才能“查找”文件。

1 个答案:

答案 0 :(得分:0)

  

rsync中是否有任何选项可以重新编写目标路径?

否,因为rsync的同步部分依赖于路径,文件名和其他元特征,不仅仅是复制,还包括删除。

  

复制后的“简单mv”不够好

复制之前的简单mv 怎么样?如果这不可行,为什么不在源上创建链接文件夹结构,然后将该文件夹结构rsync到目的地?

  

我需要它足够聪明才能“查找”文件

您是否考虑为每个文件制作一个rsync命令?这样您只需转换一次源文件夹和目标文件夹,但可以多次重新运行rsync行以进行对等。