gpt4 book ai didi

linux - rsync 仅存在的目录?

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:06 24 4
gpt4 key购买 nike

在我的本地机器上我有几个插件,在服务器上我也有几个。

本地机器:

~/wp-content/plugins/plugin1~/wp-content/plugins/plugin1/includes~/wp-content/plugins/plugin2~/wp-content/plugins/plugin3~/wp-content/plugins/plugin4~/wp-content/plugins/plugin5

远程机器:

~/wp-content/plugins/plugin1~/wp-content/plugins/plugin1/includes~/wp-content/plugins/plugin3~/wp-content/plugins/plugin5

我可以使用什么 rsync 命令来更新远程目录中的所有文件,但前提是它们存在?为此,我想让 plugin1、plugin1/includes、plugin3 和 plugin5 同步——所有文件和目录都在里面——但不是 plugin2 或 plugin4。基本上,使用单个 rsync 命令更新所有插件(如果存在)。

最佳答案

仅用一个 rsync 命令不可能完全做到这一点。如果您只想更新 远程文件,但不想添加 文件,您可以使用此命令:

rsync -rP --existing source/ user@remote:target/

这根本不会创建新文件或目录,但会更新不同的文件或目录。

编辑:也许你可以做这样的事情(假设 GNU find,如果 BSD/OS X:用 depth 替换 maxdepth):

#!/bin/bash
REMOTE_TARGET_DIR=/some/path
REMOTE_DIRS=$(ssh user@remote "find $REMOTE_TARGET_DIR -maxdepth 1 -type d -printf '%P\n' | sed 1d"
for DIR in $REMOTE_DIRS
do
rsync -rP "$DIR" "user@remote:$REMOTE_TARGET_DIR/"
done

警告:我还没有对此进行测试,您可能需要将“-n”添加到 rsync(空运行)以查看会发生什么。

关于linux - rsync 仅存在的目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7000102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com