Согласно man-странице для ls, ls -U
означает:
не сортировать; список записей в порядке каталога.
Что означает «порядок каталогов» и как он определяется?
Следующий тест (выполненный в файловой системе ext3) показывает, что это не тот порядок, в котором файлы были созданы:
root@sv1010vm0007:/tmp# mkdir test
root@sv1010vm0007:/tmp# touch test/2
root@sv1010vm0007:/tmp# touch test/1
root@sv1010vm0007:/tmp# touch test/3
root@sv1010vm0007:/tmp# ls -U test
2 3 1
источник
Действительно, нет конкретного порядка ожидать. Это зависит от реализации ОС и файловой системы, чтобы упорядочивать записи по своему усмотрению. Одна из целей этого варианта - получить более быстрый листинг, который может быть существенным фактором при очень больших каталогах.
источник
Это порядок, в котором записи хранятся внутри файловой системы. Это будет варьироваться от файловой системы к файловой системе. Например, входы могут храниться в каком-то сбалансированном дереве, например, в красно-черном дереве . Возможна дальнейшая оптимизация для каталогов с небольшим количеством записей или для эффективной обработки добавлений и удалений.
источник
Каталог - это просто еще один файл, в котором перечислены метаданные реальных файлов. "ls -U" просто перечисляет записи в том же порядке в файле каталога.
Порядок определяется ОС и реализацией файловой системы.
источник