Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Suppressing failed glob patterns

On Dec 4, 2008, at 4:04 PM, Frank Terbeck wrote:

Thorsten Kampe <thorsten@xxxxxxxxxxxxxxxx>:
I like the default in zsh for failed glob patterns (which errors when no
file matches the pattern).

For example:
% rm file1.* file2.*
zsh: no matches found: file1.*

zsh never executes rm (which is fine). Additionially I would like to get rid of the error message in a script. Unfortunately redirecting stderr does not work (because rm is never executed). Is there a way to keep the
default and to suppress the error?!

Check these settings: <http://zshwiki.org/home/options/expn>

And also see what the difference between

 % echo non-existing-file.*
 % echo non-existing-file.*(N)


That's documented in 'man zshexpn' and a list of available modifiers
and flags is also in <http://www.bash2zsh.com/zsh_refcard/ refcard.pdf>.

You could use setopt no_nomatch and then rm would run, you'd get this:

% rm nowayjose*
rm: nowayhoe*: No such file or directory

Then you could redirect STDERR:
% rm nowayhoe* 2> /dev/null

[no error]

--Mike H

Messages sorted by: Reverse Date, Date, Thread, Author