Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważność wielkości liter określa, czy wielkie litery (FOO.txt) i małe litery (foo.txt) są obsługiwane jako odrębne (uwzględniana wielkość liter) lub równoważne (bez uwzględniania wielkości liter) w nazwie pliku lub katalogu.
- Rozróżnianie wielkości liter: FOO.txt ≠ foo.txt ≠ Foo.txt
- Bez uwzględniania wielkości liter: FOO.txt = foo.txt = Foo.txt
Różnice w rozróżnianiu wielkości liter między systemami Windows i Linux
Podczas pracy z plikami i katalogami systemu Linux i Windows może być konieczne dostosowanie sposobu rozróżniania wielkości liter.
Zachowanie standardowe:
- System plików Windows ignoruje wielkość liter w nazwach plików i katalogów. FOO.txt i foo.txt będą traktowane jako pliki równoważne.
- System plików Linux rozróżnia wielkość liter w nazwach plików i katalogów. FOO.txt i foo.txt będą traktowane jako odrębne pliki.
System plików Windows obsługuje ustawianie rozróżniania wielkości liter za pomocą flag atrybutów dla każdego katalogu. Standardowym zachowaniem jest niewrażliwość na wielkość liter, ale można przypisać flagę atrybutu, aby katalog uwzględniał wielkość liter. Dzięki temu rozpozna pliki i foldery systemu Linux, które mogą się różnić tylko wielkością liter.
Może to być szczególnie istotne w przypadku montowania dysków w systemie plików Podsystemu Windows dla systemu Linux (WSL). Podczas pracy w systemie plików WSL używasz systemu Linux, w związku z czym pliki i katalogi są domyślnie traktowane jako rozróżniające wielkość liter.
Notatka
W przeszłości, jeśli masz pliki, których nazwa różniła się tylko wielkością liter, te pliki nie mogą być dostępne dla systemu Windows, ponieważ aplikacje systemu Windows traktują system plików jako niewrażliwy na wielkość liter i nie mogą rozróżniać plików, których nazwy różnią się tylko literami. W Eksploratorze plików systemu Windows będą wyświetlane oba pliki, ale tylko jeden zostanie otwarty niezależnie od wybranej opcji.
Zmiana rozróżniania wielkości liter w nazwach plików i katalogów
W poniższych krokach wyjaśniono, jak zmienić katalog w systemie plików systemu Windows, tak aby uwzględniał wielkość liter i rozpoznawał pliki i foldery, które różnią się tylko wielkością liter.
Ostrzeżenie
Niektóre aplikacje systemu Windows, zakładając, że system plików nie rozróżnia wielkości liter, nie używają poprawnej wielkości liter do odwoływania się do plików. Na przykład nie jest rzadkością, aby aplikacje przekształcały nazwy plików w celu używania wszystkich wyższej lub małej litery. W katalogach rozróżniających wielkość liter oznacza to, że te aplikacje nie mogą już uzyskiwać dostępu do plików. Ponadto, jeśli aplikacje systemu Windows tworzą nowe katalogi w drzewie katalogów, w którym używane są pliki wrażliwe na wielkość liter, te katalogi same nie są wrażliwe na wielkość liter. Może to utrudnić pracę z narzędziami Windows w katalogach, które rozróżniają wielkość liter, dlatego należy zachować ostrożność podczas zmieniania ustawień czułości na wielkość liter w systemie plików Windows.
Sprawdź bieżącą czułość na wielkość liter
Aby sprawdzić, czy katalog jest rozróżniany pod względem wielkości liter w systemie plików systemu Windows, uruchom polecenie:
fsutil.exe file queryCaseSensitiveInfo <path>
Zastąp <path> ścieżką pliku. W przypadku katalogu w systemie plików Systemu Windows (NTFS) <path> będzie wyglądać następująco: C:\Users\user1\case-test lub jeśli jesteś już w katalogu user1, możesz po prostu uruchomić: fsutil.exe file setCaseSensitiveInfo case-test
Modyfikowanie rozróżniania wielkości liter
Obsługa wrażliwości na wielkość liter dla poszczególnych katalogów jest dostępna od systemu Windows 10, kompilacja 17107. W systemie Windows 10, kompilacja 17692, obsługa została zaktualizowana w celu umożliwienia inspekcji i modyfikowania flagi wrażliwości na wielkość liter dla katalogu z poziomu WSL. Ważność wielkości liter jest uwidaczniona przy użyciu atrybutu rozszerzonego o nazwie system.wsl_case_sensitive. Wartość tego atrybutu będzie wynosić 0 dla katalogów bez uwzględniania wielkości liter i 1 dla katalogów z uwzględnieniem wielkości liter.
Zmiana rozróżniania wielkości liter katalogu wymaga uruchomienia z podwyższonymi uprawnieniami (uruchom jako administrator). Zmiana flagi uwzględniania wielkości liter wymaga również uprawnień do "zapisu atrybutów", "utworzenia plików", "utworzenia folderów" oraz "usunięcia podfolderów i plików" w katalogu. Zobacz sekcję rozwiązywania problemów, aby uzyskać więcej informacji na temat tego.
Aby zmienić katalog w systemie plików systemu Windows tak, aby uwzględniał wielkość liter (FOO ≠ foo), uruchom program PowerShell jako administrator i użyj polecenia :
fsutil.exe file setCaseSensitiveInfo <path> enable
Aby zmienić katalog w systemie plików systemu Windows z powrotem na wartość domyślną bez uwzględniania wielkości liter (FOO = foo), uruchom program PowerShell jako administrator i użyj polecenia :
fsutil.exe file setCaseSensitiveInfo <path> disable
Katalog musi być pusty, aby zmienić atrybut flagi uwzględniania wielkości liter w tym katalogu. Nie można wyłączyć flagi uwzględniania wielkości liter w katalogu zawierającym foldery i pliki, których nazwy różnią się tylko wielkością liter.
Dziedziczenie poufności liter
Podczas tworzenia nowych katalogów, te katalogi będą dziedziczyć rozróżnianie wielkości liter po katalogu nadrzędnym.
Ostrzeżenie
Istnieje wyjątek od tych zasad dziedziczenia podczas uruchamiania w trybie WSL 1. Gdy dystrybucja jest uruchomiona w trybie WSL 1, flaga rozróżniania wielkości liter dla katalogu nie jest dziedziczona przez podkatalogi; katalogi utworzone w takim katalogu nie stają się automatycznie rozróżniające wielkości liter. Należy jawnie oznaczyć każdy katalog jako rozróżniający wielkość liter
Opcje uwzględniania wielkości liter przy montowaniu dysku w pliku konfiguracyjnym WSL
Zarządzanie wielkością liter można kontrolować podczas montowania dysku w Windows Subsystem for Linux za pomocą pliku konfiguracyjnego WSL. Każda zainstalowana dystrybucja systemu Linux może mieć własny plik konfiguracji WSL o nazwie /etc/wsl.conf. Aby uzyskać więcej informacji na temat sposobu instalowania dysku, zobacz Wprowadzenie do instalowania dysku z systemem Linux w programie WSL 2.
Aby skonfigurować opcję rozróżniania wielkości liter w pliku wsl.conf podczas montowania dysku:
- Otwórz dystrybucję systemu Linux, której będziesz używać (tj. Ubuntu).
- Zmień katalogi do momentu wyświetlenia folderu
etc(może to wymagaćcd ..z kataloguhome). - Wyświetl listę plików w katalogu
etc, aby sprawdzić, czy plikwsl.confjuż istnieje (użyj polecenialslubexplorer.exe ., aby wyświetlić katalog za pomocą Eksploratora plików systemu Windows). - Jeśli plik
wsl.confjeszcze nie istnieje, możesz go utworzyć za pomocą polecenia:sudo touch wsl.conflub uruchamiającsudo nano /etc/wsl.conf, co spowoduje utworzenie pliku podczas zapisywania z edytora Nano. - Dostępne są następujące opcje dodawania do pliku
wsl.conf:
Ustawienie domyślne: off dla niedostępności czułości na wielkość liter (wszystkie katalogi na zamontowanych dyskach NTFS będą ignorować wielkość liter).
[automount]
options = case = off
Włączanie rozróżniania wielkości liter na katalog: dir
[automount]
options = case = dir
Traktuj wszystkie katalogi na dysku (NTFS) jako rozróżniające wielkość liter: force
[automount]
options = case = force
Ta opcja jest obsługiwana tylko w przypadku instalowania dysków w dystrybucjach systemu Linux działających jako WSL 1 i może wymagać klucza rejestracji. Aby dodać klucz rejestracji, możesz użyć tego polecenia z wiersza polecenia z podwyższonym poziomem uprawnień (administrator): reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\lxss /v DrvFsAllowForceCaseSensitivity /t REG_DWORD /d 1.
Po wprowadzeniu zmian w pliku wsl.conf należy ponownie uruchomić program WSL, aby zmiany zaczęły obowiązywać. Możesz ponownie uruchomić program WSL przy użyciu polecenia: wsl --shutdown
Napiwek
Aby zamontować dysk (który używa wtyczki systemu plików DrvFs, aby dysk był dostępny w lokalizacji /mnt, takich jak /mnt/c, /mnt/d itp.) z określonym ustawieniem wielkości liter dla wszystkich dysków, użyj /etc/wsl.conf zgodnie z powyższym opisem. Aby ustawić domyślne opcje instalacji dla jednego określonego dysku, użyj pliku /etc/fstab, aby określić te opcje.
Aby uzyskać więcej opcji konfiguracji protokołu WSL, zobacz Configure per distro launch settings with wslconf.
Zmiana rozróżniania wielkości liter na dysku zamontowanym w dystrybucji WSL
Dyski sformatowane ntfs zainstalowane w dystrybucji WSL będą domyślnie bez uwzględniania wielkości liter. Aby zmienić czułość na wielkość liter dla katalogu na dysku zamontowanym w dystrybucji WSL (tj. Ubuntu), wykonaj te same kroki, co wymienione powyżej dla systemu plików Windows. (Dyski EXT4 będą domyślnie rozróżniały wielkość liter).
Aby włączyć rozróżnianie wielkości liter w katalogu (FOO ≠ foo), użyj polecenia:
fsutil.exe file setCaseSensitiveInfo <path> enable
Aby wyłączyć rozróżnianie wielkości liter w katalogu i powrócić do domyślnego trybu bez rozróżniania wielkości liter (FOO = foo), skorzystaj z polecenia:
fsutil.exe file setCaseSensitiveInfo <path> disable
Notatka
Jeśli zmienisz flagę uwzględniającą wielkość liter w istniejącym katalogu dla zainstalowanego dysku podczas działania programu WSL, upewnij się, że w programie WSL nie ma odwołań do tego katalogu lub zmiana nie będzie skuteczna. Oznacza to, że katalog nie może być otwarty przez żadne procesy WSL, w tym przy użyciu katalogu (lub jego elementów podrzędnych) jako bieżącego katalogu roboczego.
Konfigurowanie czułości na wielkość liter w Git
System kontroli wersji Git ma również ustawienie konfiguracji, które można wykorzystać do dostosowania uwzględniania wielkości liter dla plików, z którymi pracujesz. Jeśli używasz usługi Git, możesz dostosować ustawienie git config core.ignorecase.
Aby ustawić w Git uwzględnianie wielkości liter (FOO.txt ≠ foo.txt), wprowadź:
git config core.ignorecase false
Aby ustawić Git na ignorowanie wielkości liter (FOO.txt = foo.txt), wprowadź:
git config core.ignorecase true
Ustawienie tej opcji na wartość false w bezrozróżnieniowym systemie plików może prowadzić do mylących błędów, fałszywych konfliktów lub zduplikowanych plików.
Aby uzyskać więcej informacji, zobacz dokumentację Git Config.
Rozwiązywanie problemów
Mój katalog zawiera pliki, które mają różne wielkości liter i wymagają rozróżniania wielkości liter, ale narzędzia systemu plików Windows nie rozpoznają tych plików.
Aby użyć narzędzi systemu plików Windows do pracy z katalogiem systemu Linux zawierającym pliki z mieszanymi wielkościami liter, należy utworzyć zupełnie nowy katalog i ustawić go tak, aby uwzględniał wielkość liter, a następnie skopiować pliki do tego katalogu (przy użyciu git clone lub untar). Pliki pozostaną mieszane. (Należy pamiętać, że jeśli próbowano już przenieść pliki do katalogu niewrażliwego na wielkość liter i wystąpiły konflikty, prawdopodobnie niektóre pliki zostały zastąpione przez inne i nie będą już dostępne).
Błąd: Katalog nie jest pusty
Nie można zmienić ustawienia rozróżniania wielkości liter w katalogu, który zawiera inne pliki lub katalogi. Spróbuj utworzyć nowy katalog, zmienić ustawienie, a następnie skopiować do niego pliki z mieszanymi literami.
Błąd: Odmowa dostępu
Upewnij się, że masz uprawnienia „Pisanie atrybutów”, „Utwórz pliki”, „Utwórz foldery” i „Usuń podfoldery i pliki” w katalogu wymaganym do zmiany rozróżniania wielkości liter. Aby sprawdzić te ustawienia, otwórz katalog w Eksploratorze plików systemu Windows (w wierszu polecenia użyj polecenia: explorer.exe .). Kliknij prawym przyciskiem myszy katalog i wybierz pozycję właściwości , aby otworzyć okno Właściwości dokumentu, a następnie wybierz pozycję Edytuj, aby wyświetlić lub zmienić uprawnienia dla katalogu.
Błąd: dla tej operacji jest wymagany lokalny wolumin NTFS
Atrybut wielkości liter można ustawić tylko w katalogach w systemie plików sformatowanym w NTFS. Katalogi w systemie plików WSL (Linux) domyślnie rozróżniają wielkość liter (i nie można ich ustawić na nieuwzględnianie wielkości liter przy użyciu narzędzia fsutil.exe).
Dodatkowe zasoby
Windows Subsystem for Linux