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 ではこの問題は発生しなかったため、このシェルをデフォルトに戻すことを真剣に考えています。

ご清聴ありがとうございました。

関連情報