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.

link|improve this question

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
feedback

2 Answers

up vote 3 down vote accepted

Try doing unsetopt nomatch.

link|improve this answer
feedback

Quote the filespec:

ls --hide="*.pyc"

alias lh='ls --hide="*.pyc"'
link|improve this answer
feedback

Your Answer

 
or
required, but never shown

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