Como posso listar diretórios com ls e classificá-los por proprietário e grupo?
9
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 -l
saída completa , classificados primeiro pelo nome do usuário, depois pelo nome do grupo e depois pelo que for ls -l
impresso 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
acrescentou o
$8
eocolumn -t
de 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,3
inicia e termina no campo 3,3,5
dos campos 3 a 5.fonte