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

Re: glob expansion

Michael Wild <themiwi@xxxxxxxxx> writes:

> On 28Apr, 2008, at 10:26, Lloyd Zusman wrote:
>> Lloyd Zusman <ljz@xxxxxxxxxx> writes:
>>> Michael Wild <themiwi@xxxxxxxxx> writes:
>>>> [ ... ]
>>>> find /usr/lib -type f -name *.so
>>>> [ ... ]
>>>> So my question: Is there any way to change the expansion behavior of
>>>> ZSH? The man-pages and the FAQ didn't help me, nor did google. But
>>>> then, I'm quite sure I didn't use the appropriate search terms...
>>> Try this:
>>>  alias find='noglob /usr/bin/find'
>>> Then, issue the command above.  This works for specific commands.   
>>> Also,
>>> look at 'setopt nonomatch' if you want this behavior all the time.
>> Of course, the 'nonomatch' option doesn't work quite the same way as  
>> the
>> 'noglob' prefix.  It only suppresses the error and returns the  
>> wildcard
>> if the glob doesn't match -- it expands it if it does.  The 'noglob'
>> prefix ensures that no glob expansion will be performed in any case.
>> I shouldn't post here before my morning coffee.
> ;-) I sure got the difference, and nonoglob exactly does what I want.  
> Expansion if possible, otherwise pass it on without erroring out.

Well, I'm glad that I accidentally described what you're looking
for. :)

Just keep in mind that nonomatch won't do what you seem to want in your
'find' example.  Suppose the current working directory contains the
following files:

   aaa bbb ccc.so ddd.so eee.so subdir

... where 'subdir' is the top of a directory tree containing many other
*.so files.

If you have 'setopt nonomatch' and you issue the following command ...

  find . -type f -name *.so

... that command will be expanded like this before it is executed:

  find . -type f -name ccc.so ddd.so eee.so

It will then not give you what you're looking for.

 Lloyd Zusman
 God bless you.

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