Это очень сильно зависит от ls
реализации. Из этих 4 найденных в системе GNU / Linux здесь:
$ 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
, один из проекта GNU (из коллекции coreutils GNU ). Это обычно встречается в системах GNU, таких как Debian (ядра Linux или kFreeBSD), Cygwin или Fedora.
$ gnu-ls -rt
a c b
ls
От семейной реликвии Toolchest , порт инструментов OpenSolaris:
$ heirloom-ls -rt
a b c
ls
Из коллекции AT & T Open Source , возможно , построен в ksh93
. Еще один с несколькими необычными расширениями:
$ 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 (как найдено (или производное) в большинстве (обычно встроенных) Linux-систем):
$ busybox ls -rt
c b a
Итак, из них GNU и ast ls
рассматривают дробную вторую часть. Другие прибегают к лексическому сравнению для файлов, которые были изменены в последнюю секунду. Только busybox ls
чтит -r
там.
В моих тестах FreeBSD ls
также поддерживает точность до секунды (при условии, что они включены на уровне VFS, см. vfs.timestamp_precision
Sysctl).
zsh
Глобусы (с классификатором глобуса om
для заказа по времени модификации, Om
для обратного порядка) также занимают полное время:
$ echo *(Om)
a c b
[ file1 -nt file2 ]
где поддерживается также, как правило, поддерживают субсекундную гранулярность .