Quiero reproducir la salida de ls --full-time
de un script de Perl para evitar la sobrecarga de llamar al ls
varios miles de veces. Esperaba usar la función stat y obtener toda la información de allí. Sin embargo, la marca de tiempo en la salida ls usa el reloj de alta resolución, por lo que también incluye la cantidad de nanosegundos (según los documentos de GNU, esto se debe a que --full-time equivale a --format=long --time-style=full-iso
, y el estilo de tiempo iso completo incluye los nanosegundos).¿Cómo puedo obtener el mtime de alta resolución para un enlace simbólico en Perl?
Encontré el módulo Time::HiRes, que anula la función de estadísticas estándar con una que devuelve atime/mtime/ctime como números de punto flotante, pero no hay anulación para lstat. Esto es un problema, porque al llamar a stat en un enlace simbólico se devuelve información para el archivo vinculado, no para el enlace en sí.
Así que mi pregunta es: ¿dónde puedo encontrar una versión de lstat que devuelva atime/mtime/ctime de la misma manera que Time :: HiRes :: stat? En su defecto, ¿hay otra forma de obtener el tiempo de modulación para un enlace simbólico en alta resolución (que no sea llamar a ls)?
¿Necesita una solución portátil o solo hay un sistema operativo objetivo? – mob