Ошибка «scp with zsh : no matches found» в Unix/Linux

Ошибка «scp with zsh : no matches found» в Unix/Linux

Совсем недавно, я начал использовать оболочку zsh за место bash. Но столкнулся с небольшой проблемой при копировании файлов по SCP/Rsync. По этому, решил записать заметку «Ошибка «scp with zsh : no matches found» в Unix/Linux» и рассказать как с ней бороться.

Существует несколько способов исправить данную ошибку:

  1. Самый простой способ — это использовать алиас на команду scp с параметром noglob. Для этого нужно открыть файл:
    # vim ~/.zshrc

    И вставляем алиас:

    [...]
    alias scp='noglob scp' 
    [...]
  2. Можно добавить функцию, и добавить его в файл:
    # vim ~/.zshrc

    Добавляем:

    # Disable globbing on the remote path.
    alias scp='noglob scp_wrap'
    function scp_wrap {
             local -a args
             local i
             for i in "$@"; do case $i in
                   (*:*) args+=($i) ;;
                   (*) args+=(${~i}) ;;
                   esac; done
                   command scp "${(@)args}"
    }

После чего, можно использовать scp и все будет работать. А на этом, я завершаю свою тему «Ошибка «scp with zsh : no matches found» в Unix/Linux’.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.