如果我执行(在 bash 中):
scp remote.machine:/var/log/sy* .
我在远程机器上得到了所有匹配/var/log/sy* 的文件。
syslog 100% 91KB 10.1KB/s 00:09
syslog.1 100% 753KB 62.7KB/s 00:12
syslog.2.gz 100% 55KB 7.9KB/s 00:07
syslog.3.gz 100% 50KB 8.3KB/s 00:06
这是如何工作的?
我的印象是在执行命令之前 shell 扩展了 glob 模式。
我的理解有误吗?
最佳答案
你的理解是正确的。但是:
您的本地 shell 无法展开 remote.machine:/var/log/sy*
,因为您没有这样的文件(可能;当前文件夹中的目录 remote.machine:
的子目录树 var/log/
包含 sy*
文件的情况非常罕见。
因此您的 shell 将字符串提供给 scp
未扩展,将其交给远程系统,远程系统解析并使用它。
关于linux - bash/scp 如何展开 "remote"glob 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15678694/