【问题标题】:Why rsync uses mkdir without p option为什么 rsync 使用没有 p 选项的 mkdir
【发布时间】:2012-12-09 05:11:51
【问题描述】:

我可以看到rsync 如果文件路径中的某些目录不存在,则无法同步文件。为什么它不使用mkdir -p 命令创建此目录?也许它有一个选择? -r 选项在这种情况下不起作用。

【问题讨论】:

    标签: rsync mkdir


    【解决方案1】:

    这里有人问过类似的问题:

    rsync: how can I configure it to create target directory on server?

    看起来rsync 无法做到这一点。在执行rsync 之前,您必须编写一个在目标目录上执行mkdir -p 的包装脚本。如果您的目标目录在不同的服务器上,您也许可以通过ssh 在脚本中运行mkdir -p 命令。

    【讨论】:

    • 您链接到的问题现在有一个已接受的答案,它解释了 --relative 选项确实使 rsync 创建所需的目录。
    • 即使使用开关--rsync-path="mkdir -p /dir && rsync" 也不会创建目录。在发出 rsync 命令之前,我编写了一个 shell 脚本并创建了新的 /dir 。它是这样工作的。
    【解决方案2】:

    我也遇到了和你一样的问题,如果远程目标的目录是“/root/test”,我想用rsync将我的文件复制到远程目录“/root/test/aaa/bbb”,那么“@ 987654324@" 将详细说明。 最好的解决方案是,给出命令“ssh <username>@<remoteHostIP> mkdir -p <absolute_path>”以递归方式在远程主机上创建子目录。然后使用rsync 命令会成功。

    【讨论】:

    • 最后我也是这样做的。好像没有方便的方法来说服 rsync 递归地创建目录
    猜你喜欢
    • 2014-05-09
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 2020-05-08
    • 2015-04-12
    • 2012-07-14
    相关资源
    最近更新 更多