Zsh 在终端中执行ssh复制的第一步是什么?

Zsh 在终端中执行ssh复制的第一步是什么?,zsh,glob,scp,Zsh,Glob,Scp,我正在使用此命令将文件从远程服务器复制到本地计算机: scp -r app:/home/dolphin/model* . 在bash中,它工作正常。在zsh中,它抛出以下错误:zsh:未找到匹配项:app:/home/dolphin/model*。我正在从谷歌搜索,了解bash和zsh有不同的全局规则。以下是我的问题: 此命令的执行步骤详细信息是什么 任何人都可以告诉我shell如何执行该命令,第一步是回显该命令的路径 我可以使用-v(verbose)来查看scp执行过程。我不熟悉Zsh,

我正在使用此命令将文件从远程服务器复制到本地计算机:

scp -r app:/home/dolphin/model* .
在bash中,它工作正常。在zsh中,它抛出以下错误:
zsh:未找到匹配项:app:/home/dolphin/model*
。我正在从谷歌搜索,了解bash和zsh有不同的全局规则。以下是我的问题:

  • 此命令的执行步骤详细信息是什么

  • 任何人都可以告诉我shell如何执行该命令,第一步是回显该命令的路径


我可以使用-v(verbose)来查看scp执行过程。

我不熟悉Zsh,但据我所知,如果没有全局变量,Bash会将原始字符串作为参数传递给程序,而在这种情况下,Zsh似乎会抱怨

要确保“unglobbed”字符串作为参数传递给scp(1),可以转义星号:

scp -r app:/home/dolphin/model\* .
                              ^^

似乎Zsh无法grep不存在的文件,而Bash只是将未展开的字符串传递给程序。是否有详细消息,如何查看解析过程,是否有可能看到?@CyrusIt是否有可能看到解析过程或理解该过程@iBug@Dolphin也许你需要了解Zsh是如何工作的。这个问题与
scp
无关,因为Zsh正在抱怨globbing失败,此时它刚刚解析了命令行并应用了扩展。在线文档可能会有所帮助——我不知道有什么内置方法可以在实际运行命令之前检查shell执行的每个步骤。