Eso depende mucho de la ls
implementación. De los 4 encontrados en un sistema GNU / Linux aquí:
$ touch a; touch c; touch b; stat -c %y a c b
2018-01-10 12:52:21.367640342 +0000
2018-01-10 12:52:21.371640148 +0000
2018-01-10 12:52:21.375639952 +0000
GNUls
, el del proyecto GNU (de la colección GNU coreutils ). Ese es el que generalmente se encuentra en los sistemas GNU como Debian (kernels Linux o kFreeBSD), Cygwin o Fedora.
$ gnu-ls -rt
a c b
El ls
de Heirloom Toolchest , un puerto de herramientas OpenSolaris:
$ heirloom-ls -rt
a b c
El ls
de la colección AT&T Open Source , posiblemente integrado ksh93
. Otro con bastantes extensiones elegantes:
$ ast-ls -rt
a c b
$ PATH=/opt/ast/bin:$PATH ksh93 -c 'type ls; ls -rt'
ls is a shell builtin version of /opt/ast/bin/ls
a c b
busybox (como se encuentra (o un derivado) en la mayoría de los sistemas basados en Linux (generalmente integrados):
$ busybox ls -rt
c b a
Entonces, de esos, GNU y ast ls
consideran la segunda parte fraccionaria. Los otros recurren a la comparación léxica para los archivos modificados por última vez en el mismo segundo. Solo busybox ls
rinde homenaje al -r
allí.
En mis pruebas, FreeBSD ls
también admite precisión de menos de un segundo (siempre que estén habilitadas en el nivel VFS, consulte vfs.timestamp_precision
sysctl).
zsh
Los globs (con el om
calificador glob para ordenar en el tiempo de modificación, Om
para el orden inverso) también toman el tiempo completo:
$ echo *(Om)
a c b
[ file1 -nt file2 ]
, Donde apoyado también en general apoyar granularidad sub-segundo .
Con respecto a la
ls
implementación de GNU , la ejecuciónls -l
ordenará los archivos en orden alfabético yls -lt
ordenará los archivos en orden de tiempo de modificación, los más nuevos primero, con la mayor precisión admitida por el sistema de archivos subyacente. Puede verificar esto usando la--full-time
opción.Por lo tanto, para responder a su pregunta, sí, en la mayor medida posible, pero solo cuando la usa
-t
(de lo contrario, será alfabética de forma predeterminada) y está utilizando una implementación que la admite (consulte la respuesta de Stéphane para obtener más detalles). Por ejemplo,ext4
puede admitir precisión de nanosegundos, dados inodos lo suficientemente grandes como para almacenar los datos de marca de tiempo requeridos.fuente
puede verificar eso si compara la salida de
y
No hay nada arbitrario en la clasificación.
fuente
Sí lo hará
Para probar, cree dos archivos con una pequeña diferencia horaria:
Consultar horarios de modificación:
La lista usará tal diferencia:
Con
--full-time
la diferencia quedará claro.fuente
bb
y alaa
revés.