Isso depende muito da ls
implementaçã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 ls
partir do Heirloom Toolchest , uma porta de ferramentas OpenSolaris:
$ heirloom-ls -rt
a b c
O ls
da 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 ls
consideram a segunda parte fracionária. Os outros retornam à comparação lexical dos arquivos modificados pela última vez no mesmo segundo. Apenas o busybox ls
honra o -r
local.
Nos meus testes, o FreeBSD ls
também suporta precisão de segundos (desde que eles estejam habilitados no nível do VFS, consulte vfs.timestamp_precision
sysctl).
zsh
Os globos (com o om
qualificador glob para solicitar no horário da modificação, Om
para 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 .