Chciałem najpierw umieścić to pytanie na StackExchange, ale okazało się zbyt ogólne. Jeśli nie pasuje do tej kategorii, proszę o przeniesienie.
Moje pytanie dotyczy systemów operacyjnych ogólnie, ale jeśli ktoś znałby odpowiedź tylko dla systemów np. z rodziny Unix, to też będzie dobrze. Każda podpowiedź mile widziana.
Ad rem.
W Linuksie (ogólnie mówiąc), kiedy chcemy wyświetlić coś w konsoli, wynik jest zazwyczaj jakoś posortowany. Przykładowo, korzystając z narzędzia GNU ls, wyjście jest domyślnie sortowane "alphabetically, according to the locale settings in effect", jak jest napisane w dokumentacji tego narzędzia (cokolwiek by to stwierdzenie nie miało znaczyć).
Jeżeli chcielibyśmy inaczej posortować, możemy użyć na przykład narzędzia GNU sort. W jego dokumentacji jest napisane, że sortowanie ciągów znaków (a więc także i nazw plików) odbywa się przy pomocy zmiennej środowiskowej LC_COLLATE
.
Ale to wszystko implikuje, że jeśli mówimy o "kolejności plików" (a w szczególności o "domyślnej kolejności plików"), nie ma rady – musimy mówić w kontekście jakiegoś narzędzia (w szczególności należałoby rozróżnić, że nazwy plików są zazwyczaj interpretowane jako po prostu ciągi znaków).
Moje pytanie jest następujące: czy jest tak, że każdy system operacyjny definiuje zbiór zmiennych środowiskowych podobnych do LC_COLLATE
, i wszystkie narzędzia mające dostęp do aktualnie używanego systemu plików (oraz sam ten system plików) muszą z tych zmiennych korzystać w jakiś sposób, jeżeli chcą mieć posortowane wyjście?
Czy może jest tak, że systemy plików definiują w jakiś sposób kolejność plików?
A może jest tak, że systemy operacyjne definiują w jakiś sposób kolejność plików?
Najbardziej mnie interesują linki do jakichś standardów lub dokumentacji.