I have been using zsh for a month or two and loving every minute of it. I don’t know if I can live without it or not. However for some reason rsync and zsh, they just don’t play along with each other. When I tried to use rsync, I got this error message:

zsh: no matches found:

So what the hec is this!!!!!

After spend days and day of researching, I finally found the fix. Phew~~~

3.4: How do I turn off spelling correction/globbing for a single command?

In the first case, you presumably have setopt correctall in an initialisation file, so that zsh checks the spelling of each word in the command line. You probably do not want this behaviour for commands which do not operate on existing files.

The answer is to alias the offending command to itself with nocorrect stuck on the front, e.g.

alias rsync='nocorrect rsync'

To turn off globbing, the rationale is identical:

alias rsync='noglob rsync'

You can have both nocorrect and noglob, if you like, but the nocorrect must come first, since it is needed by the line editor, while noglob is only handled when the command is examined.

Note also that a shell function won’t work: the no… directives must be expanded before the rest of the command line is parsed.

The content above I found it on zsh.sourceforge.net section 3.4**