Перейти к основному содержанию

Windows — регистрозависимые имена файлов и папок

Windows

Одной из особенностью операционной системы Windows всегда было то, что Windows не делала различий между верхним и нижнем регистром в именах файлов и папок.

Я регистронезависимая винда, и это хорошо. Я не буду регистрозависимой, но это не плохо...

В Linux, к примеру, это не так.

Чувствительность к регистру определяет, обрабатываются ли прописные (FOO.txt) и строчные буквы (foo.txt) как уникальные (с учетом регистра) или эквивалентные (без учета регистра) в имени файла или каталога. Стандартное поведение:

  • Файловая система Windows обрабатывает имена файлов и каталогов как без учета регистра. FOO.txt и foo.txt будут рассматриваться как эквивалентные файлы.
  • Файловая система Linux обрабатывает имена файлов и каталогов как чувствительные к регистру. FOO.txt и foo.txt будут рассматриваться как отдельные файлы.

Это создавало некоторые трудности при переносе денных между Windows и Linux. Если скопировать папку проекта из Windows в Linux, то она скопируется без проблем. А если скопировать папку с проектом из Linux в Windows, то не факт что скопируется...

win

Ситуация ещё больше усложнилась с появлением подсистемы Windows для Linux (WSL).

Windows Subsystem for Linux 2

Чтобы избежать подобных конфликтов в Windows 10 с апрельским обновлением 2018 года в файловой системе NTFS появился скрытый атрибут system.wsl_case_sensitive для учета регистра каталога, чтобы он распознал файлы и папки Linux, которые могут отличаться только по регистру. Значение этого атрибута будет равно 0 для каталогов без учета регистра и 1 для каталогов с учетом регистра.

При работе из WSL этот атрибут включается автоматически, при работе в Windows его можно включить с помощью утилиты fsutil.exe с правами администратора. Пример на PowerShell:

fsutil.exe file setCaseSensitiveInfo "C:\CASEit" enable

win

И тогда...

win

Каталог должен быть пустым, чтобы изменить атрибут флага конфиденциальности регистра в этом каталоге. Флаг конфиденциальности регистра нельзя отключить в каталоге, содержащем папки и файлы, имена которых отличаются только по регистру.

При создании новых каталогов эти каталоги наследуют чувствительность регистра от родительского каталога.

Ссылки

https://learn.microsoft.com/ru-ru/windows/wsl/case-sensitivity

Теги

 

Похожие материалы

RDP-ссылка на RemoteApp в Windows Server 2012 R2

Говорят, что в Windows Server 2012 выпилили функционал по созданию rdp ярлыков на удалённые приложения. Но это не совсем так. Расскажу как сделать rdp ярлык без особых проблем. Устанавливаете приложение на сервер. Убедитесь, что входите в группу пользователей, которым доступны удалённые приложения.

Теги

Точка входа в процедуру nextafterf не найдена в библиотеке MSVCR120_CLR0400.dll

При установке программы на Windows 7 словил ошибку: Точка входа в процедуру nextafterf не найдена в библиотеке MSVCR120_CLR0400.dll. Подозреваю, что проблема в битом .NET. Попробуем вылечить.

Теги