rsync 不同步 .htaccess 文件

新手上路,请多包涵

我正在尝试将 server1 的目录 A 与 server2 的目录 B 同步。

坐在 server1 的目录 A 中,我运行了以下命令。

 rsync -av * server2::sharename/B

但有趣的是,它会同步除 .htaccess 或目录 A 中的任何隐藏文件之外的所有文件和目录。子目录中的任何隐藏文件都会同步。

我还尝试了以下命令:

 rsync -av --include=".htaccess" * server2::sharename/B

但结果是一样的。

为什么 A 目录的隐藏文件没有同步以及如何修复它的任何想法。我以root用户身份运行。

谢谢

原文由 Sangfroid 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 562
1 个回答

这是因为 * 默认扩展到当前工作目录中的所有文件,但名称以点开头的文件除外。因此, rsync 永远不会接收这些文件作为参数。

您可以将 . 表示当前工作目录传递给 rsync

 rsync -av . server2::sharename/B

这样 rsync 将在当前工作目录中查找要传输的文件,而不是在 * 扩展的内容中查找它们。

或者,您可以使用以下命令使 * 扩展到所有文件,包括以点开头的文件:

 shopt -s dotglob

另请参见 shopt 手册页

原文由 Adam Zalcman 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题