27

How could I list sub-directories with ls, with '-d' only the current directory is shown. I want something like find . -type d -maxdepth 1 would give me.

Bernhard
  • 8,583
  • 4
  • 41
  • 42

3 Answers3

36

This should help:

ls -d */

*/ will only match directories under the current dir. The output directory names will probably contain the trailing '/' though.

Costi Ciudatu
  • 37,042
  • 7
  • 56
  • 92
7

You can combine with grep:

ls -l | grep '^d'

To get just the filenames:

ls -l | grep '^d' | awk '{ print $9 }'

You can make this into a handy alias:

alias ldir="ls -l | grep '^d'"
dogbane
  • 266,786
  • 75
  • 396
  • 414
6

ls -d */ and ls -d */*/ seem to work just fine.

Šimon Tóth
  • 35,456
  • 20
  • 106
  • 151