这里是 MacOSX 上的 zsh。
我想指出的是,我尝试了几种方法,带引号和不带引号、单引号或双引号、带括号和不带括号、带/不带 $ 变量。但我总是收到这样的信息:“没有这样的文件或目录”。
我的 ~/.zshrc 文件别名部分有一行。
alias cpsos='source="${1}"; destination="${2}"; scp -i ~/.ssh/id_sos "${source}" __USERNAME__@__SERVER__:"${destination}"'
当我在终端使用时
% cpsos "/Users/sos/dev/g/qrcode/net.png" "/home/sos/webapps/demo/frontend/static/"
我收到
/home/sos/webapps/demo/frontend/static/: No such file or directory
我也尝试过使用一些技巧来简单地进行一些调试并了解错误是什么。这里是另外一些 ~/.zshrc 行
# Automatically quote globs in URL and remote references
__remote_commands=(scp rsync)
autoload -U url-quote-magic
zle -N self-insert url-quote-magic
zstyle -e :urlglobber url-other-schema '[[ $__remote_commands[(i)$words[1]] -le ${#__remote_commands} ]] && reply=("*") || reply=(http https ftp)'
alias scp='noglob scp'
alias echosos='source="${1}"; destination="${2}"; echo "Source: ${source}" ; sleep 1; echo "Destination: ${destination}";'
然后,在终端上
% echosos "/Users/sos/dev/g/qrcode/net.png" "/home/sos/webapps/demo/frontend/static/"
回复
Source: Destination: zsh: permission denied: /Users/sos/dev/g/qrcode/net.png
总是出现“没有那个文件或目录”或“权限被拒绝”的错误信息,这是怎么回事?
以前有人遇到过这种问题吗?知道这种非常烦人的故障的原因吗?这种故障迫使您放弃完全使用别名功能?在简单的 bashrc 中,这种情况不会发生,我正在认真考虑将此 shell 恢复为默认 shell。
感谢您的关注。