I recently switched to zsh. In bash, when I use "ls --hide=*.pyc" in a file with no .pyc files, ls works as expected. In zsh, "ls --hide=*.pyc" works when the directory contains .pyc files, but fails with zsh: no matches found: --hide=*.pyc when no matches are found.

I would like to alias ls as "ls --hide=*.pyc"; is it possible to get zsh to stop complaining when no matches are found?

Thank you.

  • 1
    You should really be escaping or quoting that asterisk. If you happened to have a directory entry like --hide=something.pyc (admittedly unlikely), then even bash would no do what you expect. Using ls --hide=\*.pyc or ls --hide='*.pyc' will work in all sane shells (since no wildcard actually is involved). – Chris Johnsen Feb 2 '10 at 1:33

Try doing unsetopt nomatch.


Quote the filespec:

ls --hide="*.pyc"

alias lh='ls --hide="*.pyc"'

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.