Убедитесь, что служба sshd запущена на Centos 7.
Если вы превратите свой короткий скрипт sh
в скрипт zsh
, вы можете попросить оболочку zsh
упорядочить имена в нужном вам порядке:
#!/bin/zsh
ls -p -fd -- *(om)
Здесь (om)
— это квалификатор glob, который изменяет поведение предыдущего шаблона. om
означает "упорядочить по последнему -измененному -времени". Затем я вызываю ls -fd
с этим списком имен, используя -f
, чтобы остановить ls
от изменения порядка, и -d
, чтобы не отображать содержимое каталогов.
Вместо команды ls
вы также можете использовать
print -rC1 -- *(Nom)
для печати списка в один столбец(-C1
). -r
останавливает print
от интерпретации последовательностей обратной косой черты. N
в квалификаторе glob действует так же, как nullglob
в bash
, то есть заставляет шаблон расширяться до нуля, если совпадения нет (, а не генерировать ошибку ).
Если это происходит в системе Linux, то вы стали жертвой ошибки ядра Linux.
В UNIX метки времени файла создаются с помощью функции uniquetime()
, которая увеличивает доли секунды каждый раз, когда она используется.
Это дает уникальные метки времени файла для различных операций файловой системы, даже если системные часы не очень точны.
Однако в Linux tt обычно получает одну и ту же метку времени для более чем одной операции с файловой системой.
Когда временные метки равны, файлы сортируются в алфавитном порядке, и это то, что вы видите.