Isso depende muito da lsimplementação. Desses 4 encontrados em um sistema GNU / Linux aqui:
$ 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 , o do projeto GNU (da coleção coreutils do GNU ). Esse é o normalmente encontrado em sistemas GNU como Debian (Linux ou kFreeBSD), Cygwin ou Fedora.
$ gnu-ls -rt
a c b
A lspartir do Heirloom Toolchest , uma porta de ferramentas OpenSolaris:
$ heirloom-ls -rt
a b c
O lsda coleção de código-fonte aberto da AT&T , possivelmente incorporado ksh93. Outro com algumas extensões sofisticadas:
$ 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 encontrado (ou derivado) na maioria dos sistemas baseados em Linux (geralmente embutidos)):
$ busybox ls -rt
c b a
Então, desses, GNU e ast lsconsideram a segunda parte fracionária. Os outros retornam à comparação lexical dos arquivos modificados pela última vez no mesmo segundo. Apenas o busybox lshonra o -rlocal.
Nos meus testes, o FreeBSD lstambém suporta precisão de segundos (desde que eles estejam habilitados no nível do VFS, consulte vfs.timestamp_precisionsysctl).
zshOs globos (com o omqualificador glob para solicitar no horário da modificação, Ompara ordem inversa) também levam o tempo todo:
$ echo *(Om)
a c b
[ file1 -nt file2 ], onde o suporte também geralmente oferece suporte a granularidade de segundos .