两台linux 服务器同步修改的文件

📅 2026/7/23 17:37:11
两台linux 服务器同步修改的文件
两台服务器同步修改的文件为什么用*会报错未指定递归scp默认只拷贝单个文件。如果不加-r参数遇到文件夹如res、src、assets时它会报错not a regular file并跳过。目标路径被本地 Shell 解析你在本地终端输入目标路径/.../FactoryMode/*时你本地的 Bash 会自动把*展开为本地该目录下的所有子文件名。这会导致scp接收到多个目标参数从而引发混乱和类似cp: -r not specified的错误。根据你的具体需求有以下几种更好的解决方法方法一使用rsync最推荐能自动同步修改过的文件既然你有许多修改过的文件包括 Java、XML、Strings 等使用rsync是最方便、最安全的方法。它会自动对比两台服务器的文件只拷贝有修改的文件并且会自动创建和维护目录结构。在本地执行以下命令注意源路径和目标路径结尾的/rsync -avz src/ dist/优点不需要考虑哪些是文件夹哪些是文件它会把两边的FactoryMode目录完美同步且速度极快。方法二如果只需要那一个特定的aging_test.xml如果你其实只需要这一个 xml 文件不需要拷贝整个目录直接指定该文件的完整路径进行scp即可scp aging_test aging_tests.xml方法三如果你坚持使用scp拷贝整个目录如果要用scp拷贝包含子目录的完整文件夹必须使用-r参数代表 recursive递归拷贝且目标路径写到它的上一级目录即apps目录否则容易产生目录嵌套例如在FactoryMode下又生成一个FactoryModescp -r FactoryMode apps/