LinuxWindows

Как включить регистрозависимые имена файлов и папок в Windows 10

Windows 10 теперь предлагает дополнительную чувствительную к регистру файловую систему, такую ​​же, как Linux и другие UNIX-подобные операционные системы. Все процессы Windows будут обрабатывать файлы и папки с учетом регистра, если вы включите эту функцию. Другими словами, они будут видеть «файл» и «файл» как два отдельных файла.

Как это работает

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

Чувствительность к регистру была добавлена ​​в обновлении Windows 10 за апрель 2018 года . До этого было возможно монтировать папки Windows с учетом регистра в среде Bash on Windows , также известной как подсистема Windows для Linux. Это прекрасно работало в среде Linux, но это сбивало с толку нормальные приложения Windows. Теперь это функция уровня файловой системы, что означает, что все приложения Windows будут видеть файловую систему с учетом регистра и в этой папке.

Эта функция включается с помощью команды fsutil.exe , которую необходимо запустить из командной строки. Вы можете сделать это из командной строки или из окна PowerShell. При настройках по умолчанию папки, которые вы создаете в среде Linux, также автоматически настраиваются с учетом регистра.

СВЯЗАННЫЕ: Все, что вы можете сделать с новой оболочкой Bash в Windows 10

Как установить каталог с учетом регистра

Для начала щелкните правой кнопкой мыши кнопку «Пуск» и выберите команду «PowerShell (Администратор)». Если вы предпочитаете использовать командную строку, вы можете выполнить поиск «Командная строка» в меню «Пуск», щелкнуть по нему правой кнопкой мыши и затем выбрать команду «Запуск от имени администратора». Команда работает одинаково, независимо от того, какую среду командной строки вы выберете.

Вам может не потребоваться доступ администратора для запуска этой команды, в зависимости от ваших разрешений. Технически, вам нужно разрешение «запись атрибутов» для каталога, который вы хотите изменить. В большинстве случаев это означает, что вам потребуются разрешения администратора, если вы хотите редактировать папку где-то за пределами вашей пользовательской папки, например, c: \ project, а не если вы хотите изменить папку где-то внутри вашей пользовательской папки, например как в c: \ users \ NAME \ project.

Прежде чем продолжить, убедитесь, что ни одно из работающих программ Linux не ссылается на каталог, который вы собираетесь изменить. Вы не должны изменять флаг чувствительности к регистру в папке, когда к ней обращается программное обеспечение Linux. Если какие-либо запущенные процессы Linux в настоящее время имеют каталог или что-либо внутри открытого каталога, даже если их текущий рабочий каталог, приложения Linux не распознают изменения и могут возникнуть проблемы.

Чтобы сделать папку чувствительной к регистру, введите следующую команду, заменив «C: \ folder» на путь к папке:

  fsutil.exe файл setCaseSensitiveInfo C: \ включить папку 

Если в пути к папке есть пробел, заключите весь путь в кавычки, например:

  fsutil.exe файл setCaseSensitiveInfo "C: \ my folder" включить 

Это не влияет на подпапки

Флаг чувствительности к регистру влияет только на конкретную папку, к которой вы его применяете. Он не наследуется автоматически подпапками этой папки.

Другими словами, если у вас есть папка с именем C: \ папка и в ней есть подпапки C: \ folder \ test и C: \ folder \ stuff, простое создание чувствительной к регистру папки C: \ не сделает также Подпапки «test» и «stuff» внутри него чувствительны к регистру. Вам нужно было бы запустить соответствующую команду fsutil отдельно, чтобы все три папки были чувствительны к регистру.

Инструменты Linux по умолчанию создают регистрозависимые папки

Инструменты Linux, которые вы запускаете в подсистеме Windows для Linux (оболочка Bash), теперь создают папки с установленным флагом с учетом регистра. Таким образом, независимо от того, используете ли вы команду mkdir для создания каталога в оболочке Bash или инструмент разработки, это будет сделано автоматически для созданного каталога с учетом регистра, даже если вы создадите его в смонтированной файловой системе Windows.

Технически это происходит потому, что файловая система DrvFs для среды Linux использует флаг case=dir по умолчанию . Параметр case=dir устанавливает среду Linux для соблюдения флага NTFS каждого каталога и для автоматической установки флага чувствительности к регистру для каталогов, созданных в среде Linux. Вы можете изменить эту опцию в своем файле wsl.conf , если хотите.

Пока вы создаете папки из среды Linux, они создаются с правильными настройками чувствительности к регистру, и вам не нужно прикасаться к команде fsutil.exe.

Как проверить, является ли каталог чувствительным к регистру

Чтобы проверить, является ли каталог чувствительным к регистру, выполните следующую команду, заменив «C: \ folder» на путь к папке.

  fsutil.exe файл queryCaseSensitiveInfo C: \ папка 

Если для каталога включена чувствительность к регистру, вы увидите, что «Атрибут чувствителен к регистру в каталоге [путь]». Если каталог использует стандартную нечувствительность к регистру Windows, вы увидите, что «Атрибут чувствителен к регистру на каталог [путь] отключен. »

Как сделать каталог нечувствительным к регистру

Чтобы отменить внесенные изменения и сделать регистр без учета регистра еще раз (в соответствии с замыслом Билла Гейтса), выполните следующую команду, заменив «C: \ folder» на путь к папке.

  fsutil.exe файл setCaseSensitiveInfo C: \ отключить папку 

Если вы попытаетесь отключить чувствительность к регистру для папки, содержащей файлы с именами, которые могут столкнуться, вы увидите сообщение «Ошибка: каталог не пустой». Вам нужно будет удалить или переименовать конфликтующие файлы, прежде чем продолжить.

Похожие посты
Linux

8 лучших окружений рабочего стола Linux

Windows

Драйверы для Windows 10

Windows

Лучшие приложения для фотографии на вашем Windows Phone

Windows

Команды командной строки для панели управления апплетами