Quiero hacer que el ls
tiempo de visualización en ISO
formato (formato militar). ¿Cómo puedo cambiar este comportamiento?
En Linux sabía que podía forzar a ls a mostrar el tiempo en formato largo usin --full-time
pero esto no funciona en OS X.
Actualización: Sé que el formato utilizado por el comando se basa en la locale
configuración. El problema es que en OS XI no pude usar el truco de configuración LC_TIME=en_DK
.
command-line
unix
Sorin
fuente
fuente
ls
parece no ofrecer nada para formatear fechas y horas, aparte de cambiar la zona horaria y ordenar por fecha y hora en lugar de alfa. developer.apple.com/library/mac/documentation/Darwin/Reference/…Respuestas:
Si instala gnu coreutils, gnu ls está disponible, lo que hará lo que sea necesario. Si usa brew como administrador de paquetes, es tan simple como:
fuente
brew install coreutils
resulta en la/usr/local/bin/gls
instalación, por lo que debe ejecutar engls
lugar dels
.gls -l --time-syle="+%I"
(o cualquiera que sea elgdate
formato de estilo correcto para ISO-8601).El
ls
comando incorporado de OS X no toma tiempo formateando argumentos, pero elstat
comando toma cadenas de formato de tiempo de ejecución para que pueda obtener una aproximación de lo que quiere haciendo:La
%FT%T
produce un ISO8601 marca de tiempo local. Agregue un%z
si desea un desplazamiento UTC.Pero aunque la marca de tiempo es correcta, el resto solo se aproxima a lo que obtendría de ls. Por ejemplo,
ls -l
alinea correctamente los campos en columnas, puede colorear el resultado y, por supuesto, enumera el contenido del directorio en lugar de requerir que pase todos los nombres de archivo como argumentos. Al menos puede reproducir la alineación adecuada canalizando la salidatr
para convertir todos los espacios en pestañas:Alternativamente, creo que debería ser posible
ls -l
producir una marca de tiempo ISO8601 definiendo un entorno personalizado, pero no lo he visto hecho.fuente
ls -l --time-style=iso
funciona bien para mifuente
ls
no es sin darse cuenta, a través de un administrador de paquetes como brew./usr/local/bin/gls
instalado a través debrew install coreutils
, y eso admite la--time-style
opción. Es posible que se haya ejecutado el OP,brew install coreutils --with-default-names
lo que resultaría en la/usr/local/bin/ls
instalación (entre otras utilidades), o tal vez el OP configuró un enlace simbólico manualgls
.which ls
?