Что такое «порядок каталогов» файлов в каталоге (используется `ls -U`)?

Согласно странице 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 

Это зависит от файловой системы. Для некоторых файловых систем (ext3 среди них) каталог на самом деле является файлом с хорошо известным форматом, а бит «d» установлен в его разрешениях или режиме. В этом случае история того, какие длины имен файлов были созданы и удалены, может иметь значение. Ядро заполнит первую запись в файле каталога, в которой будет достаточно места для хранения имени нового файла. Подробнее см. http://e2fsprogs.sourceforge.net/ext2intro.html , раздел «Физическое описание».

Для некоторых других файловых систем Reiserfs среди них каталог – это всего лишь некоторые записи в дереве B +, которые не видны в файловой системе, поэтому простой ls каталога в файловой системе Reiserfs находится в лексическом порядке.

В самом деле, нет конкретного порядка ожидать. Реализация операционной системы и файловой системы зависит от того, как это сделать. Одна из целей этого варианта состоит в том, чтобы получить более быстрый список, который может быть важным фактором с очень большими каталогами.

Это порядок, в котором записи хранятся внутри файловой системы. Это зависит от файловой системы и файловой системы. Например, entires могут храниться в каком-то сбалансированном дереве, таком как дерево Red-Black . Могут быть дальнейшие оптимизации для каталогов с небольшим количеством записей или эффективно работать с дополнениями и удалениями.

Каталог – это еще один файл, в котором перечислены метаданные реальных файлов. «ls -U» просто перечисляет entires в том же порядке в файле каталога.

Порядок определяется ОС и реализацией файловой системы.