Quiero hacer que el lstiempo de visualización en ISOformato (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-timepero esto no funciona en OS X.
Actualización: Sé que el formato utilizado por el comando se basa en la localeconfiguració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

lsparece 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 coreutilsresulta en la/usr/local/bin/glsinstalación, por lo que debe ejecutar englslugar dels.gls -l --time-syle="+%I"(o cualquiera que sea elgdateformato de estilo correcto para ISO-8601).El
lscomando incorporado de OS X no toma tiempo formateando argumentos, pero elstatcomando toma cadenas de formato de tiempo de ejecución para que pueda obtener una aproximación de lo que quiere haciendo:La
%FT%Tproduce un ISO8601 marca de tiempo local. Agregue un%zsi 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 -lalinea 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 salidatrpara convertir todos los espacios en pestañas:Alternativamente, creo que debería ser posible
ls -lproducir una marca de tiempo ISO8601 definiendo un entorno personalizado, pero no lo he visto hecho.fuente
ls -l --time-style=isofunciona bien para mifuente
lsno es sin darse cuenta, a través de un administrador de paquetes como brew./usr/local/bin/glsinstalado a través debrew install coreutils, y eso admite la--time-styleopción. Es posible que se haya ejecutado el OP,brew install coreutils --with-default-nameslo que resultaría en la/usr/local/bin/lsinstalación (entre otras utilidades), o tal vez el OP configuró un enlace simbólico manualgls.which ls?