zsh가있는 scp : 일치하는 항목이 없습니다.


41

zsh를 통해 scp를 시도하면

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에서 동일한 명령이 작동합니다.


답변 중 하나를 올바른 것으로 표시 할 수 있습니까? 일부는 꽤 좋아 보입니다.
Geoff

답변:


72

와일드 카드를 탈출하십시오 :

scp hostA:Descargas/debian-6.0.4-\*

1
QUEUE=*옵션으로 루비 resque 작업자를 실행하려고 할 때도 같은 오류가 발생했습니다 . 수정 해 주셔서 감사합니다!
mogramer

2
솔루션 주셔서 감사합니다 ... 이것은 zsh 자체의 이익을 위해 너무 똑똑한 예처럼 보인다 ...
Owen

1
나를 위해 일했습니다. 그래도 이상하다!
roopunk



4

이 포스트 는 url-quote-magic 플러그인을 사용하여 scp 명령에서 globs를 자동으로 이스케이프 처리하여 멋진 솔루션을 제공합니다. 사용하려면 다음을 추가하십시오 ~/.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 명령에서 원격 경로의 일부로 glob 문자 (예 :)를 입력하면 zsh는 다음과 같이 자동으로 블랙 슬래시를 추가합니다.

scp hostA:Descargas/debian-6.0.4-\* user@192.168.1.154:Escritorio/Software/

1
이것은 불쾌하지만 좋은 트릭입니다.
Attila O.

1

파티에 너무 늦었지만 ..

따옴표로도 문자열을 벗어날 수 있습니다

scp "hostA:Descargas/debian-6.0.4-*" "user@192.168.1.154:Escritorio/Software/"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.