¿Cómo cambio el formato de hora utilizado por la línea de comandos de ls en osx?

23

Quiero hacer que ls muestre el tiempo en formato ISO (formato militar). ¿Cómo puedo cambiar este comportamiento?

En Linux sabía que podía forzar que ls muestre el tiempo en formato largo con usin --full-time pero esto no funciona en OS X.

Actualización: sé que el formato utilizado por el comando se basa en la configuración de locale . El problema es que en OS X no pude usar el truco de configurar LC_TIME=en_DK .

    
pregunta sorin 02.06.2011 - 15:48

3 respuestas

13

Si instala gnu coreutils, entonces gnu ls está disponible, lo que hará según sea necesario. Si usa brew como administrador de paquetes, es tan simple como:

brew install coreutils
gls -l --time-style=full-iso
    
respondido por el barryj 02.06.2011 - 15:55
9

El comando ls incorporado de OS X no lleva tiempo formateando los argumentos, pero el comando stat toma cadenas de formato de tiempo de tiempo para que pueda obtener una aproximación de lo que quiere haciendo:

stat -l -t '%FT%T' *

El %FT%T produce una marca de tiempo local ISO8601. Agregue un %z si desea un desplazamiento UTC.

Pero mientras que la marca de tiempo es correcta, el resto solo se aproxima a lo que obtendrías de ls. Por ejemplo, ls -l alinea correctamente los campos en columnas, puede colorear la salida y, por supuesto, enumera los contenidos del directorio en lugar de requerir que pase todos los nombres de archivo como argumentos. Al menos puede reproducir la alineación correcta canalizando la salida a través de tr para convertir todos los espacios en pestañas:

stat -l -t '%F%T' * | tr ' ' \t

Alternativamente, creo que debería ser posible obtener ls -l para producir una marca de tiempo ISO8601 mediante la definición de una configuración regional personalizada, pero no lo he visto hacer.

    
respondido por el algal 15.07.2013 - 08:38
-1

ls -l --time-style=iso funciona bien para mí.

    
respondido por el Kumar 01.03.2013 - 13:19

Lea otras preguntas en las etiquetas