Lista todos os arquivos em dir com codificação por cores em ordem alfabética (dir e arquivos separados)

2

Estou procurando um comando para listar todos os arquivos em um diretório com o comando ls .

Requisitos: - Alfabeticamente - Pastas primeiro, depois arquivos (ambos em ordem alfabética) - Sem timestamps ou outras informações, apenas os nomes simples

Eu tenho experimentado e reunido este comando, mas não chega nem perto do que eu preciso:

ls -la | rev | cut -d' ' -f 1| rev

Eu gostaria de uma saída como essa (as pastas precisam ter uma cor azul):

folder_A
folder_B
folder_C

file_A  
file_B 
file_C
    
por Michiel Mulders 28.08.2017 / 13:35

2 respostas

4

Pelo menos com versões recentes de ls , você pode adicionar a opção --group-directories-first para obter uma listagem com diretórios acima dos arquivos simples. Seu comando ls provavelmente já está com alias para usar --color=auto , mas se não, você pode adicionar isso (você pode usar --color=always , mas isso pode causar resultados indesejados se você usar o comando em um pipe). Finalmente, -1 faz com que a saída seja apresentada em uma única coluna. Então o comando completo seria

ls -1 --color=auto --group-directories-first
    
por steeldriver 28.08.2017 / 14:33
0

@ Bruni respondeu com o comando tree , mas removeu-o? Esta foi realmente uma boa resposta, eu cavei no homem e encontrei a solução: tree -L 1 --dirsfirst

Esta é a saída:

.
├── docs
├── media
├── node_modules
├── src
├── test
├── API.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.rst
├── LICENSE
├── package.json
├── README.md
├── webpack.config.js
└── yarn.lock

5 directories, 8 files

Como se livrar da linha '5 dirs, 8 arquivos' sem perder o código de cores nas pastas?

Edite: @steeldriver, obrigado pela sua resposta também: ls -1 --color=auto --group-directories-first

    
por Michiel Mulders 28.08.2017 / 13:51