¿Cómo puedo enumerar directorios con ls y ordenarlos por su propietario y grupo?
9
Prueba esto:
ls -l | awk '{print $3, $4, $8}' | sort
Imprimirá el nombre de usuario, el nombre del grupo y el nombre del archivo, siempre que el nombre del archivo no contenga espacios. Alternativamente, puede escribir:
ls -l | awk '{print $3, $4, $0}' | sort
Esto imprimirá el nombre de usuario, el nombre del grupo y la ls -l
salida completa , ordenados primero por el nombre del usuario, luego el nombre del grupo y luego lo que se ls -l
imprima primero.
Tenga en cuenta que, según su distribución, los números de columna reales pueden diferir. Probé el mío en SUSE y coreutils versión 5.2.1.
Probablemente haya soluciones mejores y más elaboradas, pero esta es la más simple y funcionará la mayor parte del tiempo.
Como dijo Peterters, algo similar a:
ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
añadido el
$8
y lacolumn -t
impresión bonitaO mejor:
ls -l | sort -k 3
- ordena por propietario y por defecto ordena el siguiente campo (grupo) y enls -l | sort -k 4,4 -k 3
- ordena por grupo y luego por propietariols -l | sort -k 3,3 -k 8
- ordena por propietario y luego por nombre de archivoNota: la coma es el campo del terminador, por lo que
3,3
comienza y termina en el campo 33,5
de los campos 3 a 5.fuente