为什么未加引号的通配符可以与SCP远程配合使用?


24

我在Bash中输入以下内容:

scp user@remote:~/dir/*.xml .

它可以正常工作,获取在远程服务器上构成通配符的所有文件。但是为什么这样做呢?我认为Bash会在参数对诸如之类的工具可见之前扩展参数中的通配符表达式scp

Answers:


31

如果没有匹配的文件名,则bash中的通配符表达式将扩展为其自身。因此,只要您不在本地创建任何名称匹配的文件user@remote:~/dir/*.xml,您的命令就可以运行而无需引用。


9
并且也不要启用nullglob将其扩展为空字符串的功能
Eric Renouf

1
nullglob不会导致模式扩展为空字符串;它导致它完全消失。这是scp "" .(两个参数,其中一个是空字符串)和scp .(一个参数和对的无效调用scp)之间的区别。
chepner 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.