On 29Jan2007 18:58, Jacques B. jjrboucher@gmail.com wrote: | >Got an alias for "ls"? Try: | > unalias ls | > ls -d */ | > | >The -d says don't treat directories specially (normally ls lists | >directory _contents_ if a directory is named). | | I do have an alias for ls, but it's simply to add color. I did the | unalias and get the same results. Now with the one you have listed | here, I do get the directories. Even when I source my .bashrc back to | get the alias back, it still works as expected. So the alias is not | affecting my ls beyond adding color. | | Is the command $ls [^.]*/ | working as expected for you, listing only directories in your current | directory?
Yep, in both zsh and bash. BTW, what is the "[^.]" supposed to achieve? A plain "*" should act the same, I'd expect.
Try this:
set -x ls [^.]*/ ls -d [^.]*/ ls -d */
It would be interesting to see what the differences are, if any.
You could whack a ">/dev/null" onto the end of the ls commands so the "set -x" tracing is easy to see.
| I'm fairly comfortable with the basics of bash and some intermediate | bash but I hadn't played with globbing much. In reading up on it I'm | left with the impression that the command above would list all files | not starting with a period ([^.]), then the wildcard * (so could be | anything at all),
Yes, but plain "*" is supposed to not match things beginning with "." anyway.
| followed by the / (which doesn't seem to do | anything).
Yes it does - it forces a path traversal. You can do that with a directory, but not a file (nothing to transverse "into").
| Even if it did work, would it not exclude any directory starting with | a period?
Yes. I suspect it's a mistake from people trying to avoid "." and "..".
| But that aside, does it work (or not work) for anyone else? | | I have | GNU bash, version 3.1.17(1)-release (i686-redhat-linux-gnu)
Me too.