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

Glob specifiers for intermediate path components



Suppose I have the following directory structure:

$ mkdir a
$ touch a/1
$ ln -s a b
$ ls -ld a b a/1
drwxr-xr-x  3 jozi  staff  102 Nov 26 18:27 a
-rw-r--r--  1 jozi  staff    0 Nov 26 18:27 a/1
lrwxr-xr-x  1 jozi  staff    1 Nov 26 18:27 b -> a

Globbing for files within directories, I get the file within the
directory pointed by symlink b too:

$ print -l */*(.)
a/1
b/1

How can I restrict the globbing for the first directory level to
directories only, excluding symlinks to directories? The obvious
doesn't work:

$ print -l *(/)/*(.)
zsh: bad pattern: *(/)/*(.)

More generally, how can I specify glob qualifiers for intermediate
path components? In spirit:

$ print -l a(...)/b(...)/c(...)/d(...)/e(...)/f(...)

where (...) denotes glob qualifiers for the respective path components, or even:

$ print -l {{a(...)/b(...)}/c(...)}


Thanks,

Joerg



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