Я не делаю то, что мне сказали

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
Другие вопросы по тегам