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 .
Com relação à
ls
implementação do GNU , a execuçãols -l
ordenará os arquivos em ordem alfabética els -lt
ordenará os arquivos na ordem do tempo de modificação, o mais recente primeiro, com a maior precisão suportada pelo sistema de arquivos subjacente. Você pode verificar isso usando a--full-time
opçãoPortanto, para responder à sua pergunta, sim, da melhor maneira possível, mas somente quando você usar
-t
(caso contrário, o padrão será alfabético) e estiver usando uma implementação que a suporte (consulte a resposta de Stéphane para obter mais detalhes). Por exemplo,ext4
pode suportar precisão de nanossegundos, considerando inodes grandes o suficiente para armazenar os dados de carimbo de data / hora necessários.fonte
você pode verificar se, se comparar a saída de
e
não há nada arbitrário na classificação.
fonte
Sim vai.
Para testar, crie dois arquivos com uma pequena diferença de horário:
Verifique os tempos de modificação:
A lista usará essa diferença:
Com
--full-time
a diferença ficará claro.fonte
bb
eaa
para trás.