Das hängt sehr stark von der ls
Implementierung ab. Von diesen 4 auf einem GNU / Linux-System hier gefundenen:
$ 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
, die aus dem GNU-Projekt (aus der GNU coreutils- Sammlung). Dies ist diejenige, die normalerweise auf GNU-Systemen wie Debian (Linux- oder kFreeBSD-Kernel), Cygwin oder Fedora zu finden ist.
$ gnu-ls -rt
a c b
Die ls
aus der Heirloom Toolchest , einer Portierung von OpenSolaris-Tools:
$ heirloom-ls -rt
a b c
Die ls
aus der AT & T Open Source-Sammlung , möglicherweise eingebaut ksh93
. Eine andere mit einigen ausgefallenen Erweiterungen:
$ 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 (wie auf den meisten (allgemein eingebetteten) Linux-basierten Systemen gefunden (oder als Derivat)):
$ busybox ls -rt
c b a
Von diesen betrachten GNU und ast ls
den Bruchteil des zweiten Teils. Die anderen greifen auf den lexikalischen Vergleich von Dateien zurück, die zuletzt innerhalb derselben Sekunde geändert wurden. Nur Busybox ls
ehrt das -r
dort.
In meinen Tests unterstützen FreeBSDs ls
auch eine Genauigkeit von vfs.timestamp_precision
weniger als einer Sekunde (vorausgesetzt, sie sind auf VFS-Ebene aktiviert, siehe sysctl).
zsh
Die Globs (mit dem om
Glob-Qualifikationsmerkmal, das zur Änderungszeit bestellt werden muss, Om
in umgekehrter Reihenfolge) benötigen ebenfalls die volle Zeit:
$ echo *(Om)
a c b
[ file1 -nt file2 ]
, wo unterstützt, unterstützen im Allgemeinen auch Granularität in Sekundenbruchteilen .
In Bezug auf die
ls
Implementierung von GNU werden beim Ausführenls -l
die Dateien in alphabetischer Reihenfolge undls -lt
die Dateien in der Reihenfolge der Änderungszeit (neueste zuerst) mit der größten Genauigkeit sortiert, die vom zugrunde liegenden Dateisystem unterstützt wird. Sie können dies mit der--full-time
Option überprüfen .Um Ihre Frage zu beantworten, ja, so weit wie möglich, aber nur, wenn Sie sie verwenden
-t
(andernfalls wird sie standardmäßig alphabetisch verwendet) und eine Implementierung verwenden, die sie unterstützt (siehe Stéphanes Antwort für weitere Einzelheiten). Zum Beispielext4
kann Nanosekunde Präzision, da groß genug Inodes unterstützen die erforderlichen Zeitstempel - Daten zu speichern.quelle
Sie können dies überprüfen, wenn Sie die Ausgabe von vergleichen
und
Das Sortieren ist dort nicht willkürlich.
quelle
Ja, es wird.
Erstellen Sie zum Testen zwei Dateien mit einem kleinen Zeitunterschied:
Änderungszeiten überprüfen:
In der Liste wird ein solcher Unterschied verwendet:
Mit
--full-time
dem Unterschied wird klar.quelle
bb
undaa
rückwärts.