From mboxrd@z Thu Jan 1 00:00:00 1970 Message-Id: <199902050024.RAA17645@empire.Central.Sun.COM> Date: Thu, 4 Feb 1999 17:23:32 -0700 (MST) From: Steve Talley Reply-To: Steve Talley Subject: Re: globbing for links in pathnames To: sweth@astaroth.nit.gwu.edu Cc: zsh-users@math.gatech.edu MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii X-Mailing-List: 2093 > > On Thu, Feb 04, 1999 at 03:36:10PM -0700, Steve Talley wrote: > > Question: I am trying to locate all directories called "man" one > > level deep, ie: > > > > % ls pkgs/*/man > > > > will do it. The trouble is, some of these are redundant (like > > zsh-3.1.5/man and zsh/man). Is there a way to only specify the > > links (or non-links) in the glob? Something like > > > > % ls pkgs/*(@)/man > > % ls pkgs/**/man(/) > > will find _all_ directories named man below the pkgs > directory, but will _not_ follow symlinks. (to do that, you > would do `ls pkgs/***/man(/)' instead.) if you want to limit > your search to man directories one level deep (either so as > to not list subsequent ones, or to not waste time searching > large subdirectories that you aren't interested in), you're > probably better off using find, or some kludge like > > % ls $( ls -d test/*(@) )/man(/) Thanks! This is _almost_ what I want, but the above glob will only add the last part ("man") to the last element of the list from the earlier part. So a general question is: Is there a way to make (a b c d)/man expand to a/man b/man c/man d/man without using a for... clause? Thanks, Steve