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

Re: Filename generation: instruct zsh not to follow symbolic links?



On Thu, Jul 16, 2026 at 1:47 AM Vincent Lefevre <vincent@xxxxxxxxxx> wrote:
>
> In filename generation, is there a way to instruct zsh not to follow
> symbolic links?
>
> Unfortunately, it is not possible to use glob qualifiers on
> pathname components (except the last one, i.e. ending the pattern),
> e.g. *(/)/foo, even though there would be no ambiguity in parsing
> (because a slash cannot appear in a pathname component).

No, but you can do things like
() { mycmd $^@/foo } *(/)
which conveniently doesn't need any named temporary parameters.

fwiw, this is perfectly valid:
bing/(bar/)#foo
so the parsing might be less easy than you think. (Unless you were
thinking about looking for the )/ sequence? Maybe that would work, but
who can say for sure). I'm not exactly sure what you mean by "because
a slash cannot appear in a pathname component", are you referring to
the / inside the (/) or the one after? Because obviously all other
glob qualifiers are not the '/' character.

Also, you can already do this:
*(#q/)/foo
but the / still will not apply to the * instead of the foo (and in
fact does not apply to the foo either, not sure if it's intended to?).

-- 
Mikael Magnusson




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