分页: 1 / 1

zsh *通配符在scp 的时候不能用,为什么呢

发表于 : 2010-07-17 16:26
skylyj
如 $ scp ip:/home/tommy/* .在bash下可以执行,而在zsh下不可以识别通配符。请问只是为什么?

Re: zsh *通配符在scp 的时候不能用,为什么呢

发表于 : 2010-07-18 6:50
aerofox

代码: 全选

setopt nonomatch
然后再试试

Re: zsh *通配符在scp 的时候不能用,为什么呢

发表于 : 2010-07-19 18:31
skylyj
aerofox 写了:

代码: 全选

setopt nonomatch
然后再试试
恩,很管用,这个是什么意思呢?谢谢啊

Re: zsh *通配符在scp 的时候不能用,为什么呢

发表于 : 2010-07-20 6:44
aerofox
shell 不会按照远程地址上的文件去扩展参数,当你使用 ip:/home/tommy/*,因为本地当前目录中,十不存在 ip:/home/tommy/*,所以匹配失败。默认情况下,bash 在匹配失败时就使用原来的内容,zsh 则报告一个错误。在 zsh 中执行 setopt nonomatch 则告诉它不要报告 no matches 的错误,而是当匹配失败时直接使用原来的内容。

实际上,不管是 bash 还是 zsh,不管设置了什么选项,只要把 ip:/home/tommy/* 加上引号,就可解决问题。

Re: zsh *通配符在scp 的时候不能用,为什么呢

发表于 : 2010-07-20 16:15
skylyj
aerofox 写了:shell 不会按照远程地址上的文件去扩展参数,当你使用 ip:/home/tommy/*,因为本地当前目录中,十不存在 ip:/home/tommy/*,所以匹配失败。默认情况下,bash 在匹配失败时就使用原来的内容,zsh 则报告一个错误。在 zsh 中执行 setopt nonomatch 则告诉它不要报告 no matches 的错误,而是当匹配失败时直接使用原来的内容。

实际上,不管是 bash 还是 zsh,不管设置了什么选项,只要把 ip:/home/tommy/* 加上引号,就可解决问题。
感谢,你啊!

Re: zsh *通配符在scp 的时候不能用,为什么呢

发表于 : 2010-08-03 9:03
onelynx
aerofox 写了:

代码: 全选

setopt nonomatch
然后再试试
学习了

Re: zsh *通配符在scp 的时候不能用,为什么呢

发表于 : 2010-08-03 9:31
eexpress
为什么不学习sshfs?
:em04

Re: zsh *通配符在scp 的时候不能用,为什么呢

发表于 : 2010-08-03 17:43
skylyj
eexpress 写了:为什么不学习sshfs?
:em04
学习了,sshfs果然很强大,感谢你的推荐啊!