Try this: set -x ls [^.]*/ ls -d [^.]*/ ls -d */ It would be interesting to see what the differences are, if any.
Thanks for the tip & additional info. The results of the above after doing unalias ls and set -x: (directory names neutered slightly to protect the youngs) ls [^.]*/ + ls 'My son'\''s Passion/' Desktop/ download/ 'Final Material/' ftools/ images/ 'Linux Forensic Documents/' LPIC/ 'Other son - Profession/' Photos/ PicasaDocuments/ Presentations/ scripts/ thumb/ followed by the content of each of the above folders The other two yield identical results, being: + ls -d 'My son'\''s Passion/' Desktop/ download/ 'Final Material/' ftools/ images/ 'Linux Forensic Documents/' LPIC/ 'Other son - Profession/' Photos/ PicasaDocuments/ Presentations/ scripts/ thumb/ followed by the directory names above. I like that trace feature - lets you see how the globbing gets expanded. So we see that the original syntax yields the content of the directories, whereas as expected the -d only lists the directory names. Not to beat a dead horse, but I hate not understanding why something works (or doesn't work). Why is it working on yours but not mine? Are you getting the same trace output for the ls [^.]*/ command, but without listing the contents of those directories, only the directory names? Thanks, Jacques B.