How do I exclude directories when listing files?
How do I exclude directories when listing files in the current directory?
ls .
^ will include directories in the listing.
Try this one:
find . -maxdepth 1 -not -type d
To get it exactly equivalent to ls .
you need to not show hidden dirs.
find . -maxdepth 1 -not -type d -and -not -name '.*'
and that still leaves you with './' prefixed to each filename. That's not really an issue, but I think it's kinda ugly. I went with:
ls -p | grep -v '/$'
And that will get you a listing that looks the same, and you can add additional ls
arguments too. Add a --color=always
and you'll get your dircolors back, or -a
to see hidden files.
I like Alexander's answer because he's actually depending on a filesystem characteristic of the file in question so it won't get fooled ever. My answer will get fooled by a file that has a '/' as the last character in it's name. But that seems like it's asking for trouble.
try this:
$ find . -maxdepth 1 -type f
or this:
$ ls -p | egrep -v /$
$ ls -la | egrep -v ^d
Though it's an old post, but i thought this might help..
$ ls -l |grep -v ^d
It will list all the files including symlinks,character and block files.