scp с zsh: совпадений не найдено
Когда я пытаюсь scp через Zsh, я получаю
scp hostA:Descargas/debian-6.0.4-* user@192.168.1.154:Escritorio/Software/
zsh: no matches found: hostA:Descargas/debian-6.0.4-*
та же команда работает в Bash
6 ответов
Избегайте подстановочных знаков:
scp hostA:Descargas/debian-6.0.4-\*
Слишком поздно для вечеринки, но..
Вы можете избежать строки с кавычками тоже
scp "hostA:Descargas/debian-6.0.4-*" "user@192.168.1.154:Escritorio/Software/"
Сбросить NOMATCH
вариант, чтобы zsh оставил текст в покое, вместо того, чтобы жаловаться на неудачу.
This post has a nice solution to this by using the url-quote-magic plugin to automatically escape globs in scp commands. To enable it, add the following to your ~/.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)'
Когда вы вводите глобус (например, *
) как часть удаленного пути в команде scp или rsync, zsh автоматически добавит черную косую черту впереди, например так:
scp hostA:Descargas/debian-6.0.4-\* user@192.168.1.154:Escritorio/Software/
Раньше я не использовал псевдоним «noglob scp» в своей MacOS, но с некоторыми обновлениями мне всегда приходилось вводить \scp в начале команды, чтобы принимались подстановочные знаки.
Изменен на псевдоним scp="\noglob scp" и все работает, с подстановочными знаками в командной строке или без них.