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

Re: Emulating 'locate'



    Hi Bart :)

 * Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx> dixit:
> [We should just go off and have our own little mailing list.]

    Well... As I said a few weeks ago, I'm on the way of learning Zsh
and sometimes I practice what is said in the manual doing things like
these. Sometimes I have success, others I don't. I know, I make many
questions, and maybe you are the only able to answer then, so don't
feel guilty if you want to ignore most of them ;)))

    I know that I'm boring asking zsh questions every day...

> } Well, I suppose that slashes must be
> } matched explicitly (that is what ** is for...)
> No, that is what **/ is for.

    Ok, now I got it. Anyway I used (*/)# too with the same results,
so I thought that ** was magic everywhere in the path.

> I suspect you really did
> 
>     print /**/*ir2*/*/**
>                    ^^^ Note only one star here
> when you meant
> 
>     print /**/*ir2*/**/*

    I tried both, but with the last one ir2 was not found at the end
of the path :(((
 
> But that's still not sufficient, because it requires that *ir2* be only
> an intervening directory and not the last file or directory in the path.

    Exactly ;)))

> For that you have to use brace expansion, because you can't mix **/ and
> any other form of alternation:

    Didn't know about the mixing...

>     locate() { print -l /**/*${^*}*{,/**/*} }

    Ok, it works like a charm... Thanks a lot, as always :)
 
> (You really ought to be sending these questions to -users, not -workers.)

    Sorry, I thought I was doing that already, but the mutt aliases I
use for zsh lists were all the same. I did the cut'n'paste but not
the modification, and all aliases go to zsh-workers. Sorry, this
answer goes to zsh-users. Thanks for pointing.

    Raúl Núñez de Arenas Coronado

-- 
Linux Registered User 88736
http://www.pleyades.net & http://raul.pleyades.net/



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