Я не делаю то, что мне сказали
Ubuntu 14.04 LTS Прямая машина, без двойной загрузки или ничего.
Я нахожусь в ~/scratch
Я хочу только список каталогов.
tree -dL 1
Понял!
man ls
говорит:
-d List directories only instead of their contents.
info ls
говорит:
-d List just the names of directories...
Ясно, что это не то, что мне сказали. Что я не понимаю?
2 ответа
Решение
Попробуйте это вместо этого: ls -d */
это перечислит каталоги в текущем каталоге
ls -d
будет перечислять записи каталога без их содержимого, он не используется для отображения только записей каталога внутри каталога.
Пример прояснит вам:
$ tree
.
├── egg
├── spam
└── test
├── new
└── old
$ ls *
egg spam
test:
new old
$ ls -d *
egg spam test
Как вы видете -d
просто проверяет, что содержимое каталога test
не показывается
Как уже показано в этом ответе, чтобы показать только записи каталога, вы можете использовать */
, /
после *
гарантирует, что будут показаны только каталоги:
$ ls -d */
test/
Это аналогично:
$ for i in *; do [[ -d $i ]] && echo "$i"; done
test