我正在尝试将 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 许可协议
这是因为
*
默认扩展到当前工作目录中的所有文件,但名称以点开头的文件除外。因此,rsync
永远不会接收这些文件作为参数。您可以将
.
表示当前工作目录传递给rsync
:这样
rsync
将在当前工作目录中查找要传输的文件,而不是在*
扩展的内容中查找它们。或者,您可以使用以下命令使
*
扩展到所有文件,包括以点开头的文件:另请参见 shopt 手册页。