zsh *通配符在scp 的时候不能用,为什么呢
-
- 帖子: 52
- 注册时间: 2009-08-22 17:57
zsh *通配符在scp 的时候不能用,为什么呢
如 $ scp ip:/home/tommy/* .在bash下可以执行,而在zsh下不可以识别通配符。请问只是为什么?
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: zsh *通配符在scp 的时候不能用,为什么呢
代码: 全选
setopt nonomatch
-
- 帖子: 52
- 注册时间: 2009-08-22 17:57
Re: zsh *通配符在scp 的时候不能用,为什么呢
恩,很管用,这个是什么意思呢?谢谢啊aerofox 写了:然后再试试代码: 全选
setopt nonomatch
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: zsh *通配符在scp 的时候不能用,为什么呢
shell 不会按照远程地址上的文件去扩展参数,当你使用 ip:/home/tommy/*,因为本地当前目录中,十不存在 ip:/home/tommy/*,所以匹配失败。默认情况下,bash 在匹配失败时就使用原来的内容,zsh 则报告一个错误。在 zsh 中执行 setopt nonomatch 则告诉它不要报告 no matches 的错误,而是当匹配失败时直接使用原来的内容。
实际上,不管是 bash 还是 zsh,不管设置了什么选项,只要把 ip:/home/tommy/* 加上引号,就可解决问题。
实际上,不管是 bash 还是 zsh,不管设置了什么选项,只要把 ip:/home/tommy/* 加上引号,就可解决问题。
-
- 帖子: 52
- 注册时间: 2009-08-22 17:57
Re: zsh *通配符在scp 的时候不能用,为什么呢
感谢,你啊!aerofox 写了:shell 不会按照远程地址上的文件去扩展参数,当你使用 ip:/home/tommy/*,因为本地当前目录中,十不存在 ip:/home/tommy/*,所以匹配失败。默认情况下,bash 在匹配失败时就使用原来的内容,zsh 则报告一个错误。在 zsh 中执行 setopt nonomatch 则告诉它不要报告 no matches 的错误,而是当匹配失败时直接使用原来的内容。
实际上,不管是 bash 还是 zsh,不管设置了什么选项,只要把 ip:/home/tommy/* 加上引号,就可解决问题。
-
- 帖子: 817
- 注册时间: 2008-11-13 16:03
Re: zsh *通配符在scp 的时候不能用,为什么呢
学习了aerofox 写了:然后再试试代码: 全选
setopt nonomatch
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 52
- 注册时间: 2009-08-22 17:57
Re: zsh *通配符在scp 的时候不能用,为什么呢
学习了,sshfs果然很强大,感谢你的推荐啊!eexpress 写了:为什么不学习sshfs?