Як увімкнути імена файлів і папок з урахуванням регістру на Windows 10
Windows 10 тепер пропонує додаткову файлову систему, що залежить від регістру, так само, як Linux та інші UNIX-подібні операційні системи. Усі процеси Windows будуть обробляти файли та папки, які чутливі до регістру, якщо ви включили цю функцію. Іншими словами, вони побачать "файл" і "Файл" у вигляді двох окремих файлів.
Як це працює
Це функція файлової системи NTFS, яку можна ввімкнути на основі кожного каталогу. Це не стосується всієї файлової системи, тому ви можете просто ввімкнути чутливість регістру для певних папок, які використовуються для цілей розробки.
Чутливість справи була додана в Оновлення Апреля 2018 року в Windows 10. \ t До цього можна було монтувати папки Windows як чутливі до регістру в середовищі Bash у Windows, також відомої як підсистема Windows для Linux. Це відмінно працювало в середовищі Linux, але це заплутало звичайні програми Windows. Тепер це функція рівня файлової системи, що означає, що всі додатки Windows будуть бачити файлову систему, чутливу до регістру, в цій теці.
Цю функцію ввімкнено за допомогою fsutil.exe
Команда, яку потрібно виконати з командного рядка. Це можна зробити з вікна Командний рядок або PowerShell. За умовчанням папки, створені в середовищі Linux, автоматично налаштовані на чутливість до регістру.
Як встановити каталог як чутливий до регістру
Щоб почати, клацніть правою кнопкою миші кнопку Пуск, а потім виберіть команду "PowerShell (Administrator)". Якщо ви віддаєте перевагу використанню командного рядка, ви можете шукати «командний рядок» у меню «Пуск», клацніть його правою кнопкою миші та виберіть команду «Запуск від імені адміністратора». Команда працює однаково, незалежно від того, яке середовище командного рядка ви вибрали.
Ви, можливо, не потребуєте доступу адміністратора, щоб запустити цю команду, залежно від ваших дозволів. Технічно вам потрібен дозвіл «атрибути запису» для каталогу, який потрібно змінити. У більшості випадків це означає, що вам знадобляться права адміністратора, якщо ви хочете відредагувати папку за межами вашої теки користувача, наприклад, c: project - а не, якщо ви хочете змінити папку десь у вашій папці користувача, наприклад як у c: \ tNAMEпроекту.
Перш ніж продовжити, переконайтеся, що жодне з запущених програм Linux не посилається на каталог, який ви збираєтеся змінити. Ви не повинні змінювати прапорець чутливості справи на папці, поки програмне забезпечення Linux отримує доступ до нього. Якщо в даний час будь-які запущені процеси Linux мають каталог або що-небудь всередині каталогу, навіть як їх поточний робочий каталог, програми для Linux не визнають змін і можуть виникнути проблеми.
Щоб зробити регістр важливим, введіть таку команду, замінивши "C: папку" на шлях до папки:
fsutil.exe файл setCaseSensitiveInfo C: \ t
Якщо шлях до папки має пробіл у ньому, вкладіть весь шлях у лапки, наприклад:
fsutil.exe файл setCaseSensitiveInfo "C: моя папка" включити
Це не впливає на підпапки
Прапор чутливості справи впливає лише на певну папку, до якої ви його застосуєте. Він не успадковується автоматично за допомогою підпапок цієї папки.
Іншими словами, якщо у вас є папка з назвою C: папка і вона має C: папку test і C: папку вкладені в неї, просто зробіть C: Вкладені папки "test" і "stuff" всередині чутливі до регістру. Вам потрібно запустити відповідний fsutil
команду окремо, щоб всі три папки чутливі до регістру.
Інструменти Linux Створіть папки, що мають значення, за умовчанням
Засоби Linux, запущені в підсистемі Windows для Linux (оболонка Bash), тепер створюють папки з набором прапорів. Отже, чи використовуєте ви mkdir
команда для створення каталогу всередині оболонки Bash або засіб розробки робить це для вас, створений каталог автоматично встановлюється як чутливий до регістру - навіть якщо ви створили його на встановленій файловій системі Windows.
Технічно це відбувається тому, що файлова система DrvFs для середовища Linux використовує case = dir
за замовчуванням. The case = dir
параметр встановлює середовище Linux для того, щоб поважати прапор NTFS кожного каталогу, і автоматично встановлювати прапор чутливості регістру на каталоги, створені в середовищі Linux. Ви можете змінити цей параметр у вашому файлі wsl.conf, якщо хочете.
Поки ви створюєте папки з середовища Linux, вони створюються з належними налаштуваннями чутливості справи, і вам ніколи не доведеться торкатися команди fsutil.exe.
Як перевірити, чи є каталог важливим для регістру
Щоб перевірити, чи в даний час папка чутлива до регістру, виконайте наступну команду, замінивши “C: папку” на шлях до папки.
Файл fsutil.exe queryCaseSensitiveInfo C: \ t
Якщо для папки включена чутливість до регістру, ви побачите, що "Атрибут чутливих для регістру в каталозі [шлях] увімкнено." каталог [шлях] вимкнено. "
Як зробити справу з каталогами нечутливим
Щоб скасувати зміни і зробити папку нечутливою ще раз (як це передбачав Білл Гейтс), запустіть таку команду, замінивши "C: папку" на шлях до папки.
fsutil.exe файл setCaseSensitiveInfo C: \ t
Якщо ви намагаєтеся відключити чутливість регістру для папки, яка містить файли з іменами, які зіткнулися б, ви побачите повідомлення "Помилка: каталог не порожній". Перш ніж продовжити, потрібно видалити або перейменувати конфліктуючі файли.