¿Cómo puedo ordenar ls por propietario y grupo?


Respuestas:


8

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 -lsalida completa , ordenados primero por el nombre del usuario, luego el nombre del grupo y luego lo que se ls -limprima 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.


1
s / números de fila / números de columna /
pausa hasta nuevo aviso.

7

Como dijo Peterters, algo similar a:

  • ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
    añadido el $8y la column -timpresión bonita

O mejor:

  • ls -l | sort -k 3 - ordena por propietario y por defecto ordena el siguiente campo (grupo) y en
  • ls -l | sort -k 4,4 -k 3 - ordena por grupo y luego por propietario
  • ls -l | sort -k 3,3 -k 8 - ordena por propietario y luego por nombre de archivo

Nota: la coma es el campo del terminador, por lo que 3,3comienza y termina en el campo 3 3,5de los campos 3 a 5.


Para ordenar por grupo y luego por propietario, tuve que agregar -b para ignorar los espacios en blanco iniciales, de lo contrario, la lista se ordenaría por la longitud de la cadena del nombre del propietario.
Stefan Schmidt
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.