在 zsh 中使用 scp 或 echo 并带上别名参数打印‘没有这样的文件或目录’

在 zsh 中使用 scp 或 echo 并带上别名参数打印‘没有这样的文件或目录’

这里是 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。

感谢您的关注。

相关内容