Respostas:
Tente o seguinte:
ls -l | awk '{print $3, $4, $8}' | sort
Ele imprimirá o nome do usuário, o nome do grupo e o nome do arquivo, desde que o nome do arquivo não contenha espaços. Como alternativa, você pode digitar:
ls -l | awk '{print $3, $4, $0}' | sort
Isso imprimirá o nome do usuário, o nome do grupo e a ls -lsaída completa , classificados primeiro pelo nome do usuário, depois pelo nome do grupo e depois pelo que for ls -limpresso primeiro.
Observe que, dependendo da sua distribuição, os números reais das colunas podem ser diferentes. Eu tentei o meu no SUSE e coreutils versão 5.2.1.
Provavelmente existem soluções melhores e mais elaboradas, mas essa é a mais simples e funcionará a maior parte do tempo.
Como Petersburgo disse, algo semelhante a:
ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t$8eo column -tde impressão bonitaOu melhor ainda:
ls -l | sort -k 3 - classifica por proprietário e, por padrão, classifica o próximo campo (grupo) els -l | sort -k 4,4 -k 3 - classifica por grupo e depois pelo proprietáriols -l | sort -k 3,3 -k 8 - classifica por proprietário e depois por nome de arquivoNota: a vírgula é o campo terminador; assim, 3,3inicia e termina no campo 3, 3,5dos campos 3 a 5.