Tente isso: ls -d */
ele listará os diretórios no diretório atual
Ubuntu 14.04 LTS Máquina reta, sem inicialização dupla ou qualquer coisa.
Estou em ~/scratch
Eu quero apenas uma lista de diretórios.
tree -dL 1
Entendi!
man ls
diz:
-d List directories only instead of their contents.
info ls
diz:
-d List just the names of directories...
Claramente, isso não está fazendo o que me disseram que deveria. O que eu não entendo?
Tente isso: ls -d */
ele listará os diretórios no diretório atual
ls -d
irá listar entradas de diretório sem seu conteúdo, não é usado para mostrar apenas as entradas de diretório dentro de um diretório.
Um exemplo vai deixar você claro:
$ tree
.
├── egg
├── spam
└── test
├── new
└── old
$ ls *
egg spam
test:
new old
$ ls -d *
egg spam test
Como você pode ver, o -d
apenas garante que o conteúdo do diretório test
não esteja sendo mostrado.
Como já foi mostrado em esta resposta , para mostrar apenas as entradas do diretório, você pode usar */
. O /
após *
garante que apenas os diretórios sejam mostrados:
$ ls -d */
test/
Isso é análogo a:
$ for i in *; do [[ -d $i ]] && echo "$i"; done
test