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

61

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

EDITAR : estou usando o Mac OS X e ls -d me fornece . , embora eu tenha diretórios.

    
por prosseek 06.09.2010 / 03:14

8 respostas

72

Eu sei que já existe uma resposta selecionada, mas você pode obter o comportamento solicitado com apenas ls :

ls -ld -- */

(Observe que o '-' marca o fim dos parâmetros, impedindo que nomes de pastas que começam com um hífen sejam interpretados como opções adicionais de comando).

Isso listará todos os diretórios não ocultos (a menos que você configure os globs do seu shell para expandi-los) no diretório de trabalho atual onde ele é executado (note que ele também inclui links simbólicos para diretórios). Para obter todos os subdiretórios de alguma outra pasta, tente:

ls -ld /path/to/directory/*/

Note que o -l é opcional.

    
por 06.09.2010 / 04:16
11

Não, mas um simples comando find fará isso:

find . -type d -depth 1

ou grep

ls -F | grep /

Você pode, então, alias, se necessário.

    
por 06.09.2010 / 03:18
5

Eu gosto do utilitário tree para obter uma visão geral da estrutura do diretório. Está disponível em 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.

    
por 06.09.2010 / 13:56
4

Eu também precisava visualizar diretórios ocultos, por isso modifiquei a sugestão acima para atender às minhas necessidades

ls -ad */ \.*
    
por 23.05.2012 / 10:27
0

Claro. A maneira mais fácil é digitar o seguinte comando. Isso funciona na maioria das plataformas e versões UNIX e Linux. Você pode pular o -F se quiser, mas é o argumento que adiciona o / ao final do nome do diretório. o argumento -C captura somente nomes de diretórios - todos eles no diretório atual. Se você quiser ver apenas diretórios e subdiretórios no caminho atual, simplesmente adicione o argumento -R (ls-CFR).

# ls -CF
/dir1  /dir2  /dir3  /beaches  /Work  /Other 
    
por 21.06.2018 / 18:04
-1

Acho que tenho um bug no Mac OS X. Uma solução é usar o grep ... ls -l / | grep "^d"

    
por 06.09.2010 / 03:27
-1
$ ls -p | grep /

A -p flag fará ls adicionar uma barra ('/') após cada nome de arquivo se esse arquivo for um diretório.

    
por 30.12.2016 / 16:31
-3
ls -G

isto mostrará seus diretórios em azul

    
por 01.11.2016 / 01:44

Tags