To bardzo zależy od ls
wdrożenia. Z tych 4 znalezionych w systemie GNU / Linux tutaj:
$ 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
, ten z projektu GNU (z kolekcji GNU coreutils ). To jest zwykle spotykane w systemach GNU, takich jak Debian (jądro Linux lub kFreeBSD), Cygwin lub Fedora.
$ gnu-ls -rt
a c b
The ls
from Heirloom Toolchest , port narzędzi OpenSolaris:
$ heirloom-ls -rt
a b c
ls
Z kolekcji AT & T Open Source , prawdopodobnie zbudowany w ksh93
. Kolejny z kilkoma fantazyjnymi rozszerzeniami:
$ 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 (jak znaleziono (lub pochodną) w większości (zwykle osadzonych) systemach opartych na Linuksie):
$ busybox ls -rt
c b a
A zatem GNU i ast ls
rozważają drugą część ułamkową. Inne powracają do porównania leksykalnego plików ostatnio zmodyfikowanych w tej samej sekundzie. Tylko busybox ls
honoruje -r
tam.
W moich testach FreeBSD ls
obsługuje również precyzję poniżej sekundy (pod warunkiem, że są włączone na poziomie VFS, patrz vfs.timestamp_precision
sysctl).
zsh
Globs (z om
kwalifikatorem glob do zamawiania w czasie modyfikacji, Om
dla odwrotnej kolejności) również zajmują cały czas:
$ echo *(Om)
a c b
[ file1 -nt file2 ]
, gdzie jest obsługiwany, ogólnie obsługuje także szczegółowość poniżej sekundy .
Jeśli chodzi o
ls
implementację GNU , uruchomieniels -l
uporządkuje pliki w kolejności alfabetycznej ils -lt
uporządkuje pliki według czasu modyfikacji, najpierw najnowszej, z największą dokładnością obsługiwaną przez podstawowy system plików. Możesz to sprawdzić za pomocą--full-time
opcji.Tak więc, aby odpowiedzieć na twoje pytanie, tak, w największym stopniu może, ale tylko wtedy, gdy użyjesz
-t
(w przeciwnym razie domyślnie będzie to alfabet) i użyjesz implementacji, która je obsługuje ( więcej szczegółów znajdziesz w odpowiedzi Stéphane'a ). Na przykładext4
może obsługiwać precyzję nanosekundową, biorąc pod uwagę wystarczająco duże i-węzły do przechowywania wymaganych danych znaczników czasu.źródło
możesz to sprawdzić, jeśli porównasz dane wyjściowe z
i
w sortowaniu nie ma nic arbitralnego.
źródło
Tak, to będzie.
Aby przetestować, utwórz dwa pliki z niewielką różnicą czasu:
Sprawdź czasy modyfikacji:
Lista wykorzysta taką różnicę:
Z
--full-time
tą różnicą będzie jasne.źródło
bb
iaa
wstecz.