Bash globbing files only?
Jacques B.
jjrboucher at gmail.com
Mon Jan 29 14:30:19 UTC 2007
On 1/29/07, James Wilkinson <fedora at aprilcottage.co.uk> wrote:
> Daniel Qarras wrote:
> > I want just the files from the current directory, not from any subdir.
> > And I'd prefer some bash globbing if possible for performance/elegancy
> > reasons :)
>
The closest I could come up with was using
ls -Ap -I "pattern"
That caused directories to have / at the end of them. So I figured I
could use -I to ignore any filename ending with /. However after a
few unsuccessfull variations I realized that the / is only displayed
at the end of directories therefore not part of the name. Which means
you cannot use a pattern to eliminate names ending in / (because the
name doesn't end with /, rather / is simply displayed after a
directory name). Piping to grep would do it of course.
The find command with maxdepth and for type f is your best bet in my opinion.
If you come up with a way to do it from within ls I'd be interested in it.
Now lsattr comes close as well in that it lists files, but also
symbolic links to a directory. But that produces the attributes along
with the file names.
Like John, I can see no way on how to do it with ls alone from within
bash. Clearly John has a solution for you using another shell so you
could call upon that shell interpreter. But I don't see zsh on my
default FC6 install.
Jacques B.
Jacques B.
More information about the users
mailing list