다음과 같은 이름을 가진 파일이 많이 있습니다.
/var/log/foo/2014-07-06-01.log
...
/var/log/foo/2014-07-20-04.log
매일 여러 개의 로그 파일이 있고 특정 날짜의 로그 파일을 다운로드하고 싶습니다.
$ rsync server:/var/log/foo/2014-07-06-*.log .
그러나 나는 zsh: no matches found
잘못되었습니다.
확장자별로 필터링할 수 있다고 매뉴얼에서 찾았는데, 이 경우 파일 이름을 필터링하는 방법을 찾을 수 없습니다.
필터링을 사용하는 쉬운 방법이 있습니까 rsync
?
답변1
다음과 같은 특수 문자를 피해야 합니다.
$ rsync server:/var/log/foo/2014-07-06-\*.log .
또는
$ rsync 'server:/var/log/foo/2014-07-06-*.log' .
아니면 더 나은 방법은 install url-quote-magic
입니다.
autoload -Uz url-quote-magic
zle -N self-insert url-quote-magic
zstyle ':urlglobber' url-other-schema http https ftp mailto
그러면 zsh가 자동으로 이를 수행합니다. 다른 URL 구성표를 추가할 수도 있습니다...
편집: 또는 unsetopt NOMATCH
오류 발생 시 POSIX 셸 동작으로 돌아갈 수 있지만 경우에 따라 예상치 못한 결과가 발생할 수 있으므로 이렇게 하지 않는 것이 좋습니다.
답변2
다른 방법:
$ noglob rsync server:/var/log/foo/2014-07-06-*.log .
zsh
매뉴얼 페이지 에서 :
noglob Filename generation (globbing) is not performed on any of the
words.