Этот вопрос возник у меня на днях, когда я работал над проектом разработки, который опирается на продуманную структуру в отношении имен файлов. Фреймворк (здесь не имеет значения) хотел видеть имена файлов в верхнем регистре. Это заставило меня задуматься.
В файловой системе без учета регистра, скажем, extFAT или HFS + (особенно без учета регистра), как файловая система обеспечивает доступ к одному и тому же файлу как в верхнем, так и в нижнем регистре версий имени файла.
Например:
$ cd ~/Documents
$ pwd
/home/derp/Documents
$ cd ../documents
$ pwd
/home/derp/documents
$ cd ../docuMents
$ pwd
/home/derp/docuMents
$ cd ../DOCUMENTS
$ pwd
/home/derp/DOCUMENTS
$ cd ../documentS
$ pwd
/home/derp/documentS
Все эти команды будут преобразованы в один и тот же каталог. Является ли это поведение, в частности вывод pwd
только функцией bash
в данном случае, просто показывает мне, что, по его мнению, я хочу видеть?
Другой пример:
$ ls ~/Documents
Derp.txt another.txt whatThe.WORLD
Здесь файловая система сообщает случай исходного имени файла, созданного пользователем или программой.
В какой точке стека файловой системы сохраняется понятное человеку имя файла, как оно было создано (например, в верхнем и нижнем регистре), чтобы к нему можно было получить доступ любой комбинацией правильных символов ASCII в верхнем и нижнем регистре? Это просто трюк с регулярными выражениями или что-то еще происходит?
РЕДАКТИРОВАТЬ: Похоже, что поведение, которое мне интересно, обнаруживается в сохраняющих регистр нечувствительных к регистру файловых систем после некоторых дополнительных исследований ...