web-development-kb-pt.site

Existe alguma opção com o comando 'ls' que eu vejo apenas os diretórios?

À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.

86
prosseek

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.

96
Steven D

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.

16
gvkv

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 ..)

7
Neil Chandler

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.

7
Claes Mogren

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).

3
Stéphane Chazelas

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:

0
marcio