Sé que mi sistema de archivos está almacenando el tiempo de modificación del archivo en milisegundos, pero no sé de qué forma acceder a esa información a través de PHP. Cuando hago un ls --full-time
veo esto:Obtenga una gran lista de archivos, ordenados por tiempo de archivo en * milisegundos *
-rw-r--r-- 1 nobody nobody 900 2012-06-29 14:08:37.047666435 -0700 file1
-rw-r--r-- 1 nobody nobody 900 2012-06-29 14:08:37.163667038 -0700 file2
estoy suponiendo que los números después del punto son los milisegundos.
Así que se dan cuenta de que sólo podía utilizar ls
y tienen que ordenar por fecha de modificación, así:
$filelist = `ls -t`;
Sin embargo, el directorio tiene a veces un número masivo de archivos y me he dado cuenta de que puede haber ls
bastante lento en esas circunstancias.
En su lugar, he estado usando find
pero no tiene un interruptor para ordenar los resultados por tiempo de modificación. Aquí está un ejemplo de lo que estoy haciendo ahora:
$filelist = `find $dir -type f -printf "%[email protected] %p\n" | sort -n | awk '{print $2}'`;
Y, por supuesto, esto no hace sort a los milisegundos lo que los archivos que se crearon en el mismo segundo a veces se enumeran en el orden equivocado.
¿Por qué 'sort -n' no ordena a los milisegundos? Me parece que dos marcas de tiempo '1341013506.3000000000' y' 1341013506.6000000000' se ordenarían numéricamente ¿no? No puedo replicar porque mi máquina no almacena ms veces de archivos :) –
@mattedgod: revisa tu directorio '/ sys /'; en mi sistema, es compatible con nanosegundos veces. – sarnold
@sarnold Hmm, es extraño, el directorio sys está en nanosegundos, pero la mayoría de los directorios de documentos no lo son. Interesante ... –