Eso depende mucho de la lsimplementació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 lsde Heirloom Toolchest , un puerto de herramientas OpenSolaris:
$ heirloom-ls -rt
a b c
El lsde 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 lsconsideran 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 lsrinde homenaje al -rallí.
En mis pruebas, FreeBSD lstambién admite precisión de menos de un segundo (siempre que estén habilitadas en el nivel VFS, consulte vfs.timestamp_precisionsysctl).
zshLos globs (con el omcalificador glob para ordenar en el tiempo de modificación, Ompara 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 .