Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Rozlišování velkých a malých písmen určuje, jestli se velká písmena (FOO.txt) a malá písmena (foo.txt) zpracovávají jako odlišná (rozlišuje velká a malá písmena) nebo ekvivalentní (nerozlišuje velká a malá písmena) v názvu souboru nebo adresář.
- Rozlišování velkých a malých písmen: FOO.txt ≠ foo.txt ≠ Foo.txt
- Nerozlišují se malá a velká písmena: FOO.txt = foo.txt = Foo.txt
Rozdíly mezi citlivostí na malá a velká písmena ve Windows a Linuxu
Při práci se soubory a adresáři Systému Linux a Windows možná budete muset upravit způsob zpracování citlivosti písmen.
Standardní chování:
- Systém souborů Windows považuje názvy souborů a adresářů za nerozlišující velká a malá písmena. FOO.txt a foo.txt budou považovány za ekvivalentní soubory.
- Systém souborů Linux považuje názvy souborů a adresářů za citlivé na malá a velká písmena. FOO.txt a foo.txt budou považovány za odlišné soubory.
Systém souborů Windows podporuje nastavení citlivosti velkých a malých písmen s příznaky atributů na adresář. I když je standardní chování nerozlišovat malá a velká písmena, můžete přiřadit příznak atributu, aby adresář rozlišoval malá a velká písmena, a tak rozpoznal soubory a složky Linuxu, které se mohou lišit pouze velikostí písmen.
To může být obzvláště pravdivé při připojování jednotek k systému souborů Windows Subsystem for Linux (WSL). Při práci v systému souborů WSL používáte Linux, takže soubory a adresáře ve výchozím nastavení rozlišují malá a velká písmena.
Poznámka
Pokud jste v minulosti měli soubory, jejichž název se lišil pouze podle velikosti písmen, nebylo možné k těmto souborům přistupovat ve Windows, protože aplikace Windows považují systém souborů za takový, který nerozlišuje velká a malá písmena, a nemohou rozlišovat mezi soubory, jejichž názvy se liší pouze velikostí písmen. Průzkumník souborů Systému Windows sice zobrazí oba soubory, ale bez ohledu na to, který vyberete, se otevře jenom jeden.
Změna citlivosti souborů a adresářů na velká a malá písmena
Následující kroky vysvětlují, jak změnit adresář v systému souborů Windows tak, aby rozlišoval malá a velká písmena a rozpoznal soubory a složky, které se liší pouze velikostí písmen.
Varování
Některé aplikace pro Windows za předpokladu, že systém souborů nerozlišuje malá a velká písmena, nepoužívají správný zápis při odkazování na soubory. Například není neobvyklé, že aplikace transformují názvy souborů tak, aby používaly všechna velká nebo malá písmena. V adresářích označených jako rozlišující velká a malá písmena to znamená, že tyto aplikace už nebudou mít k souborům přístup. Kromě toho platí, že pokud aplikace systému Windows vytvářejí nové adresáře ve stromu adresářů, ve kterém používáte soubory s rozlišováním velkých a malých písmen, tyto adresáře nerozlišují malá a velká písmena. To může ztížit práci s nástroji Windows v adresářích s rozlišováním velkých a malých písmen, proto buďte opatrní při změně nastavení rozlišování velkých a malých písmen v systému souborů Windows.
Kontrola citlivosti aktuálního případu
Chcete-li zkontrolovat, zda složka v souborovém systému Windows rozlišuje velká a malá písmena, spusťte příkaz:
fsutil.exe file queryCaseSensitiveInfo <path>
Nahraďte <path> svou cestou k souboru. V případě adresáře v systému souborů Windows (NTFS) bude <path> vypadat takto: C:\Users\user1\case-test nebo pokud už jste v adresáři user1, stačí spustit: fsutil.exe file setCaseSensitiveInfo case-test
Úprava citlivosti na velikosti písmen
Podpora pro rozlišování velkých a malých písmen adresáře byla zavedena ve Windows 10, sestavení 17107. Ve Windows 10, build 17692, byla podpora aktualizována tak, aby zahrnovala kontrolu a úpravu příznaku citlivosti na velikost písmen pro adresář zevnitř WSL. Citlivost písmen je vystavena pomocí rozšířeného atributu s názvem system.wsl_case_sensitive. Hodnota tohoto atributu bude 0 pro adresáře bez rozlišování malých a malých písmen a 1 pro adresáře citlivé na malá a velká písmena.
Změna citlivosti adresáře na velká a malá písmena vyžaduje, abyste spustili s oprávněním správce (spustit jako správce). Změna příznaku rozlišování velkých a malých písmen vyžaduje také oprávnění Zapisovat atributy, Vytvořit soubory, Vytvořit složky a Odstranit podsložky a soubory v adresáři. Další informace o tomtonajdete v části řešení potíží.
Pokud chcete změnit adresář v systému souborů Windows tak, aby rozlišoval malá a velká písmena (FOO ≠ foo), spusťte PowerShell jako Administrátor a použijte tento příkaz:
fsutil.exe file setCaseSensitiveInfo <path> enable
Pokud chcete změnit adresář v systému souborů Windows zpět na výchozí nastavení nerozlišující velká a malá písmena (FOO = foo), spusťte PowerShell jako správce a použijte tento příkaz:
fsutil.exe file setCaseSensitiveInfo <path> disable
Aby bylo možné změnit atribut příznaku citlivosti písmen v tomto adresáři, musí být adresář prázdný. Příznak citlivosti na velká a malá písmena nelze zakázat v adresáři obsahujícím složky nebo soubory, jejichž názvy se liší pouze velikostí písmen.
Dědičnost citlivosti na velikost písmen
Při vytváření nových adresářů zdědí tyto adresáře citlivost písmen z nadřazeného adresáře.
Varování
Při spuštění v režimu WSL 1 došlo k výjimce této zásady dědičnosti. Pokud je distribuce spuštěna v režimu WSL 1, příznak rozlišování velikosti písmen pro adresář není zděděn; adresáře vytvořené v adresáři s rozlišováním velikosti písmen nejsou automaticky rozlišovány. Každý adresář musíte explicitně označit jako rozlišující malá a velká písmena.
Možnosti citlivosti na velikost písmen pro připojení jednotky v konfiguračním souboru WSL
Správu citlivosti na velká a malá písmena lze provést při připojování jednotky v subsystému Windows pro Linux pomocí konfiguračního souboru WSL. Každá linuxová distribuce, kterou jste nainstalovali, může mít vlastní konfigurační soubor WSL, který se nazývá /etc/wsl.conf. Další informace o připojení jednotky naleznete v tématu Začínáme s připojením disku s Linuxem ve WSL 2.
Jak nakonfigurovat možnost citlivosti na velikost písmen v souboru wsl.conf při připojování jednotky:
- Otevřete linuxovou distribuci, kterou budete používat (tj. Ubuntu).
- Přepínejte adresáře, dokud neuvidíte složku
etc(to může vyžadovat přechodcd ..z adresářehome). - Zobrazte seznam souborů v adresáři
etca zjistěte, jestli už souborwsl.confexistuje (pomocí příkazulsneboexplorer.exe .zobrazit adresář pomocí Průzkumníka souborů Windows). - Pokud soubor
wsl.confještě neexistuje, můžete ho vytvořit pomocí:sudo touch wsl.confnebo spuštěnímsudo nano /etc/wsl.conf, který při uložení z editoru Nano vytvoří soubor. - Do souboru
wsl.confmůžete přidat následující možnosti:
Výchozí nastavení: off pro rozlišování velkých a malých písmen nedostupné (všechny adresáře na připojených jednotkách NTFS budou nerozlišující velká a malá písmena).
[automount]
options = case = off
Povolení citlivosti na velká písmena pro jednotlivé adresáře: dir
[automount]
options = case = dir
považovat všechny adresáře na jednotce NTFS za citlivé na malá a velká písmena: force
[automount]
options = case = force
Tato možnost je podporována pouze pro připojení jednotek v distribucích Linuxu spuštěných jako WSL 1 a může vyžadovat registrační klíč. Chcete-li přidat registrační klíč, můžete použít tento příkaz z příkazového řádku se zvýšenými oprávněními (správce): reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\lxss /v DrvFsAllowForceCaseSensitivity /t REG_DWORD /d 1.
Po provedení jakýchkoli změn v souboru wsl.conf budete muset restartovat WSL, aby se tyto změny projevily. WsL můžete restartovat pomocí příkazu: wsl --shutdown
Spropitné
Pokud chcete připojit jednotku (která používá modul plug-in systému souborů DrvFs k zpřístupnění disku v /mnt, například /mnt/c, /mnt/d atd.) s konkrétním nastavením citlivosti na velká písmena pro všechny jednotky, použijte /etc/wsl.conf, jak je popsáno výše. Pokud chcete nastavit výchozí možnosti připojení pro jednu konkrétní jednotku, zadejte tyto možnosti pomocí /etc/fstab souboru.
Další možnosti konfigurace WSL naleznete v tématu Konfigurace nastavení spuštění podle distribuce pomocí wslconf.
Změna citlivosti písmen na jednotce připojené k distribuci WSL
Jednotky formátované systémem NTFS připojené k distribuci WSL ve výchozím nastavení nerozlišují malá a velká písmena. Chcete-li změnit citlivost písmen pro adresář na jednotce připojené k distribuci WSL (tj. Ubuntu), postupujte stejně jako výše uvedené kroky pro systém souborů Windows. (Jednotky EXT4 budou ve výchozím nastavení rozlišovat malá a velká písmena).
Pokud chcete povolit citlivost malých a velkých písmen v adresáři (FOO ≠ foo), použijte příkaz:
fsutil.exe file setCaseSensitiveInfo <path> enable
Pokud chcete v adresáři zakázat citlivost malých a velkých písmen a vrátit se k výchozímu nastavení bez rozlišování velkých a malých písmen (FOO = foo), použijte příkaz:
fsutil.exe file setCaseSensitiveInfo <path> disable
Poznámka
Pokud změníte příznak rozlišující malá a velká písmena u existujícího adresáře pro připojenou jednotku, když je spuštěná služba WSL, ujistěte se, že wsL nemá žádné odkazy na tento adresář nebo jinak změna nebude efektivní. To znamená, že adresář nesmí být otevřen žádnými procesy WSL, včetně použití adresáře (nebo jeho potomků) jako aktuálního pracovního adresáře.
Konfigurace citlivosti na velikost písmen pomocí Gitu
Systém správy verzí Git má také konfigurační nastavení, které se dá použít k úpravě citlivosti na velikost písmen pro soubory, se kterými pracujete. Pokud používáte Git, možná budete chtít upravit nastavení git config core.ignorecase.
Pokud chcete nastavit, aby Git rozlišil malá a velká písmena (FOO.txt ≠ foo.txt), zadejte:
git config core.ignorecase false
Pokud chcete nastavit, aby Git nerozlišil malá a velká písmena (FOO.txt = foo.txt), zadejte:
git config core.ignorecase true
Nastavení této možnosti na false v systému souborů bez rozlišování malých a velkých písmen může vést k matoucím chybám, falešným konfliktům nebo duplicitním souborům.
Další informace najdete v dokumentaci Git Config.
Řešení problémů
Adresář obsahuje soubory, které jsou smíšené a vyžadují citlivost písmen, ale nástroje Windows FS tyto soubory nerozpozná.
Pokud chcete používat nástroje systému souborů Windows k práci v adresáři Linuxu, který obsahuje soubory se smíšenými písmeny, budete muset vytvořit úplně nový adresář a nastavit ho tak, aby se rozlišoval na velká a malá písmena, a potom je zkopírovat do tohoto adresáře (pomocí git cloneu nebo untaru). Soubory zůstanou smíšeným případem. (Všimněte si, že pokud jste už zkusili přesunout soubory do adresáře bez rozlišování malých a malých písmen a došlo ke konfliktům, pravděpodobně byly některé soubory přepsány a už nebudou k dispozici.)
Chyba: Adresář není prázdný.
Nastavení citlivosti písmen v adresáři, který obsahuje jiné soubory nebo adresáře, nelze změnit. Zkuste vytvořit nový adresář, změnit nastavení a pak do něj zkopírovat soubory s různými velikostmi písmen.
Chyba: Přístup odepřen
Ujistěte se, že máte oprávnění zapisovat atributy, vytvářet soubory, vytvářet složky a odstraňovat podsložky a soubory v adresáři, který je nutný pro změnu citlivosti na velikost písmen. Pokud chcete zkontrolovat tato nastavení, otevřete adresář v Průzkumníku souborů Windows (z příkazového řádku použijte příkaz: explorer.exe .). Klikněte pravým tlačítkem myši na adresář a vyberte Vlastnosti otevřete okno Vlastnosti dokumentu a potom vyberte Upravit a zobrazte nebo změňte oprávnění pro adresář.
Chyba: Pro tuto operaci se vyžaduje místní svazek NTFS.
Atribut citlivosti na velikost písmen lze nastavit pouze u adresářů v systému souborů NTFS. Adresáře v systému souborů WSL (Linux) ve výchozím nastavení rozlišují malá a velká písmena (a nelze je nastavit tak, aby nerozlišovala malá a velká písmena pomocí nástroje fsutil.exe).
Další zdroje informací
Windows Subsystem for Linux