Como faço para ls
classificar por tipo de arquivo (por exemplo, diretórios primeiro e depois por extensão de arquivo)? As respostas sugeridas em (Superusuário) Faça ls classificar por tipo de arquivo resultam em erros de opção desconhecidos ls
.
15
/bin/ls
.Respostas:
Como você descobriu, a versão do
ls
comando Darwin não suporta a-X | --sort=extension
opção. Esta opção é exclusiva para a versão GNU dels
.Você pode obter a versão GNU do
ls
seu sistema. A maneira mais fácil de fazer isso é através do gerenciador de pacotes Homebrew e do sistema de portabilidade. Com o Homebrew instalado, faça:para adicionar o pacote GNU Core Utilities ao seu sistema. Todos os utilitários terão o prefixo
g
para que não colidam com os utilitários padrão do Darwin com o qual o OS X é fornecido.Com os GNU Core Utilites instalados, agora você pode:
E você verá a saída classificada como desejar.
Se você deseja usar o GNU Core Utils em vez dos utilitários que acompanham o OS X, você pode colocar a seguinte linha no seu
~/.bashrc
arquivo:E você não precisará mais usar o
g
prefixo nos comandos. Eu direi que isso não é algo totalmente seguro, pois alguns utilitários do GNU diferem dos built-ins do bash e das ferramentas do Darwin em como eles se comportam, o suficiente para que eles possam estragar outras coisas na sua sessão do shell. Então faça isso com cautela.fonte
Com base em uma resposta no artigo vinculado Superusuário :
Se você quiser ver toda a saída
ls -l
, deixe de fora acut
peça.fonte