Selon la page de manuel de ls, ls -U
signifie:
ne triez pas; liste les entrées dans l'ordre du répertoire.
Que signifie «ordre du répertoire» et comment est-il déterminé?
Le test suivant (exécuté sur un système de fichiers ext3), montre que ce n'est pas l'ordre dans lequel les fichiers ont été créés:
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
la source
En effet, il n'y a pas d'ordre spécifique à attendre. C'est à l'implémentation du système d'exploitation et du système de fichiers de classer les entrées comme il le souhaite. L'un des objectifs de cette option est d'obtenir la liste la plus rapide possible, ce qui peut être un facteur important avec des répertoires très volumineux.
la source
C'est l'ordre dans lequel les entrées sont stockées en interne dans le système de fichiers. Cela variera d'un système de fichiers à un autre. Par exemple, les entrées peuvent être stockées dans une sorte d'arbre équilibré, tel qu'un arbre rouge-noir . Il peut y avoir d'autres optimisations pour les répertoires avec un petit nombre d'entrées, ou pour gérer efficacement les ajouts et les suppressions.
la source
Le répertoire est juste un autre fichier, qui répertorie les métadonnées des fichiers réels. "ls -U" répertorie simplement les entrées dans le même ordre dans le fichier de répertoire.
L'ordre est déterminé par le système d'exploitation et l'implémentation du système de fichiers.
la source