Re: Filename generation: instruct zsh not to follow symbolic links?
Vincent Lefevre <[email protected]> Fri, 17 Jul 2026 00:57:24 +0200
| Newsgroups | gmane.comp.shells.zsh.devel,gmane.comp.shells.zsh.user |
|---|---|
| Message-ID | <[email protected]> |
On 2026-07-16 18:04:54 +0200, Mikael Magnusson wrote: > On Thu, Jul 16, 2026 at 11:35 AM Vincent Lefevre <[email protected]> wrote: > > > > On 2026-07-16 02:57:46 +0200, Mikael Magnusson wrote: > > > On Thu, Jul 16, 2026 at 1:47 AM Vincent Lefevre <[email protected]> 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. > > > > I get "No such file or directory" errors for some directories. > > But this is too complex anyway, and perhaps not usable in some > > situations. > > Right, you might need > () { setopt localoptions cshnullglob; mycmd $^@/foo } *(/) > :) I still get "No such file or directory" errors; or if I use "echo" as the command, I get non-existing files in the output. > > I would rather think that a (/ sequence could have a special meaning. > > That should be easy to parse. > > Sure, but that'd be an extreme special case then. You wouldn't be able > to use any other glob qualifiers there. Why not? -- Vincent Lefèvre <[email protected]> - Web: <https://www.vinc17.net/> 100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/> Work: CR INRIA - computer arithmetic / Pascaline project (LIP, ENS-Lyon)