Включение регистрозависимых имён файлов в Windows

Большинство UNIX- и Linux-систем используют регистрозависимые имена файлов: файл с именем “Productivity.txt” и файл “productivity.txt” считаются разными. Исторически в Windows такой возможности не было — система считала имена файлов регистронезависимыми и запрещала создавать два файла в одной папке, отличающихся только регистром букв.
На обычной Windows при попытке создать второй файл вы увидите сообщение об ошибке: “There is already a file with the same name in this location”.
Что такое регистрозависимость имён файлов
Регистрозависимость (case-sensitive) — это поведение файловой системы, при котором имена файлов отличаются по регистру и считаются разными объектами. Кратко:
- case-sensitive: “File.txt” ≠ “file.txt”.
- case-insensitive: “File.txt” == “file.txt”.
На Windows можно включать регистрозависимость для отдельных директорий, чтобы система позволяла файлам с именами, отличающимися только регистром, сосуществовать.
Как включить регистрозависимость имён файлов в Windows
Эта настройка выполняется по одной папке за раз и делается через командную строку PowerShell (требуются права администратора).
Важно: закройте все Linux-приложения и процессы, которые могут использовать целевые папки, прежде чем менять настройку.
- Нажмите правой кнопкой на меню «Пуск».
- Выберите PowerShell с правами администратора (в локалях это может отображаться как “PowerShell (от администратора)”).
- Введите команду, заменив C:\folder на нужный путь:
fsutil.exe file setCaseSensitiveInfo C:\folder enable- Если имя папки содержит пробелы, возьмите путь в кавычки:
fsutil.exe file setCaseSensitiveInfo "C:\my documents" enableЧтобы отключить регистрозависимость для папки, используйте:
fsutil.exe file setCaseSensitiveInfo "C:\folder" disableЗамечания:
- Подкаталоги не наследуют настройку — нужно повторить команду для каждой папки, где требуется регистрозависимость.
- Доступна только по одной папке за шаг; массового GUI-инструмента в момент написания нет.
Когда это полезно
- Разработчикам, работающим с Linux-инструментами и контейнерами, когда в проекте есть файлы с похожими именами, отличающимися регистром.
- При тестировании кросс-платформенных приложений, где регистр важен.
- При миграции репозиториев и сборочных пайплайнов, которые ожидают регистрозависимого поведения.
Когда это не подходит — ограничения и возможные проблемы
- Многие Windows-приложения и скрипты предполагают регистронезависимость и могут некорректно работать с папками, где включён режим.
- Сервисы и резервные копии, ожидающие уникальности имён без учёта регистра, могут записывать файлы с конфликтами.
- Подкаталоги не наследуют настройку — это может привести к непредвидённому поведению в глубокой структуре каталогов.
Важно: перед включением тестируйте изменения на копии данных и убедитесь, что CI/CD и утилиты сборки работают корректно.
Альтернативные подходы
- Использовать WSL/WSL2 или полноценную Linux VM для работы с регистрозависимыми FS без изменений в основной Windows-структуре.
- Для репозиториев Git: настроить локально
git config core.ignorecase false(это не делает файловую систему регистрозависимой, но заставляет Git учитывать регистр при операциях с индексом). - Хранить чувствительные к регистру файлы в отдельном Linux-сервере/контейнере и обращаться к ним через сеть.
Мини‑методология: чеклист перед включением
- Снять полную резервную копию целевой папки.
- Закрыть все приложения, которые могут обращаться к папке (IDE, терминалы, службы).
- Запустить PowerShell от администратора.
- Включить reg-sense через
fsutilдля нужных папок (по одной). - Прогнать тесты сборки и CI локально.
- Наблюдать работу в течение нескольких часов/дней; держать резервную копию наготове.
Ролевые чеклисты
Разработчик:
- Проверить, нет ли в проекте файлов, которые ждут регистронезависимости.
- Настроить локальный Git:
git config core.ignorecase falseпри необходимости. - Запустить юнит- и интеграционные тесты.
Системный администратор:
- Создать резервную копию и план отката.
- Проверить совместимость бэкап-инструментов и антивирусов.
- Документировать какие директории переведены в регистрозависимый режим.
Краткий глоссарий (1‑строчные определения)
- Регистрозависимость: поведение файловой системы, при котором регистр букв в имени важен.
- fsutil: встроенный Windows-утилит для управления свойствами файловой системы.
- PowerShell: оболочка и язык сценариев в Windows с привилегиями администратора для системных задач.
- WSL: Подсистема Windows для Linux, даёт нативную поддержку Linux-окружения.
Итог и рекомендации
Включение регистрозависимости имён файлов в Windows — полезный инструмент для разработчиков и администраторов, работающих с кросс-платформенным ПО. Он даёт гибкость, но требует аккуратности: настройка делается по папкам, не наследуется и потенциально может нарушить работу приложений, ожидающих регистронезависимости. Всегда делайте резервные копии, тестируйте и документируйте изменения.
Важно: если вы не уверены в совместимости, используйте WSL или отдельную Linux-машину вместо изменения поведения основной файловой системы.
Похожие материалы
Как обойти ограничения Facebook и удобнее им пользоваться
accountsd просит доступ к login keychain: причины и исправление
Как чистить микрофон и защитить его от микробов
Микрофон не работает в CS:GO — как исправить
Сделать Windows 8 похожей на Windows 7 и XP