Às vezes, preciso verificar apenas os diretórios e não os arquivos. Existe alguma opção com o comando ls? Ou existe alguma utilidade para fazer isso?
EDIT : estou usando o Mac OS X e ls -d
me dá .
embora eu tenha diretórios.
Sei que já existe uma resposta selecionada, mas você pode obter o comportamento solicitado com apenas ls
:
ls -ld -- */
(Observe que o '-' marca o final dos parâmetros, impedindo que os nomes de pastas que começam com um hífen sejam interpretados como outras opções de comando.)
Isso listará todos os diretórios não ocultos (a menos que você configure os globs do Shell para expandi-los) no diretório de trabalho atual em que é executado (observe que ele também inclui links simbólicos para diretórios). Para obter todos os subdiretórios de outra pasta, tente:
ls -ld /path/to/directory/*/
Observe que o -l é opcional.
Não, mas um simples comando find
fará isso:
find . -type d -depth 1
ou grep
ls -F | grep /
Você pode, em seguida, criar um alias, se necessário.
Eu também precisava ver diretórios ocultos, então modifiquei a sugestão acima para atender às minhas necessidades
ls -d -- */ .*/
(dependendo do Shell, isso também pode incluir .
e ..
)
Eu gosto do utilitário tree para obter uma visão geral da estrutura de diretórios. Está disponível no MacPorts e em todas as distribuições Linux que eu tentei.
tree -d -L 2
Isso mostraria todos os diretórios, com dois níveis de profundidade.
Com zsh
(como encontrado por padrão no macOS, ele costumava ser /bin/sh
lá), você usaria qualificadores glob para selecionar arquivos com base em seu tipo:
Listar diretórios não ocultos:
ls -d -- *(/)
Listar todos os diretórios:
ls -d -- *(D/)
(.
e ..
são sempre excluídos; adicione-os individualmente, se desejar)
Inclua também links simbólicos para diretórios:
ls -d -- *(D-/)
(-
faz com que outros qualificadores sejam aplicados após a resolução do link simbólico).
Não existe apenas uma opção para listar diretórios ...
Mas você pode usar -d
(lista os próprios diretórios, não o conteúdo) e */
para corresponder aos próprios diretórios:
ls -d */
E tente usar o ponto, para os ocultos, ls -d .*/
.
Apenas por diversão, tente: ls -d
e ls */
. As diferenças serão claras!
Ref: