我想使用以下模式从远程系统传输 N 个文件:
ssh remote ls target/
2013-08-01.mjson.gz
2014-07-04.mjson.gz
2014-07-09.mjson.gz
2014-08-12.mjson.gz
...
Run Code Online (Sandbox Code Playgroud)
我只想要2014-07*文件。我到目前为止的尝试:
rsync -a --dry-run --verbose --include="2014-07-*" remote:target .
# transfers everything
rsync -a --dry-run --verbose --include="2014-07-*" --exclude="*" remote:target .
# transfers nothing
rsync -a --dry-run --verbose --exclude="*" --include="2014-07-*" remote:target .
# transfers nothing
rsync -a --dry-run --verbose --include="*/2014-07-*" --exclude="*" remote:target .
# transfers nothing
rsync -a --dry-run --verbose --include="***/2014-07-*" --exclude="*" remote:target .
# transfers nothing
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用 --files-from 来指示我想要的文件,但这样做很痛苦。
我从来不明白如何正确使用包含/排除来做我想做的事。手册页指出:
并且对第一个匹配模式起作用:如果它是排除模式,则跳过该文件;如果是包含模式,则不会跳过该文件名;如果没有找到匹配的模式,则不会跳过文件名。
读到这里,我假设如果首先包含,并且文件名匹配,那么“文件名不被跳过”部分就会开始。显然,我错了。
在手册页的进一步下方,我看到:
请注意,当使用 --recursive (-r) 选项(由 …
我的 zsh shell 会自动启动 byobu。有问题的主机此时的 1m loadavg 为 300(时间 ssh 主机时间正常运行时间从本地返回 50 秒,远程花费 3 秒)。
启动 byobu 需要过多的时间。我想开始没有byobu。我可以通过一些环境变量来取消 byobu 启动吗?