Bash globbing files only?

Rick Stevens rstevens at vitalstream.com
Mon Jan 29 22:38:09 UTC 2007


On Mon, 2007-01-29 at 12:14 -0800, Evan Klitzke wrote:
> On Sun, 2007-01-28 at 12:12 -0800, Daniel Qarras wrote:
> > Hi all,
> > 
> > with Bash one can list directories (excluding dot dirs) like this:
> > 
> > ls [^.]*/
> > 
> > How can I list files instead of directories with Bash? I thought this
> > would be trivial but I can't find a solution anywhere.
> 
> Daniel,
> 
> My knowledge of bash is very limited, but I believe that the -d
> conditional checks if a file is a directory. So you could define a
> function something like this (the syntax is probably all wrong, but
> hopefully it is decipherable):
> 
> for file in `ls -1`; do
>     if ![ -d file]; then
>         printf "$file\n"
>     fi
> end
> 
> Name the function something like "lsfiles" and you're good to go.

Uh, how about "find . -maxdepth 1 -type f -print" to list the files and
"find . -maxdepth 1 -type d -print" for directories?  Take out the
"-maxdepth 1" and it'll walk the directory tree.

Nah, too prosaic!

----------------------------------------------------------------------
- Rick Stevens, Senior Systems Engineer     rstevens at vitalstream.com -
- VitalStream, Inc.                       http://www.vitalstream.com -
-                                                                    -
-     Make it idiot proof and someone will make a better idiot.      -
----------------------------------------------------------------------




More information about the fedora-list mailing list