Это очень сильно зависит от 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 ]
где поддерживается также, как правило, поддерживают субсекундную гранулярность .
Что касается
ls
реализации GNU , то при запускеls -l
будут упорядочены файлы в алфавитном порядке, аls -lt
файлы упорядочены в порядке времени изменения, начиная с самого нового, с максимальной точностью, поддерживаемой базовой файловой системой. Вы можете проверить это, используя--full-time
опцию.Поэтому, чтобы ответить на ваш вопрос, да, в наибольшей степени это возможно, но только тогда, когда вы используете
-t
(в противном случае по умолчанию используется буквенное обозначение) и используете реализацию, которая его поддерживает (см . Ответ Стефана для получения более подробной информации). Например,ext4
может поддерживать точность наносекунд, учитывая достаточно большие inode для хранения требуемых данных временной метки.источник
Вы можете проверить, что если вы сравните вывод
и
в сортировке нет ничего произвольного.
источник
Да, это будет.
Для тестирования создайте два файла с небольшой разницей во времени:
Проверьте время модификации:
В списке будет использоваться такая разница:
С
--full-time
разницей будет понятно.источник
bb
и вaa
обратном направлении.