Aracılığıyla paylaş


Büyük/küçük harf duyarlılığını ayarla

Büyük/küçük harf duyarlılığı, büyük harf (FOO.txt) ve küçük harf (foo.txt) harflerin dosya adında veya dizinde ayrı (büyük/küçük harfe duyarlı) veya eşdeğer (büyük/küçük harfe duyarsız) olarak işlenip işlenmeyeceğini belirler.

  • Büyük/küçük harfe duyarlı: FOO.txt ≠ foo.txt ≠ Foo.txt
  • Büyük/küçük harfe duyarsız: FOO.txt = foo.txt = Foo.txt

Windows ve Linux büyük/küçük harf duyarlılığı arasındaki farklar

Hem Linux hem de Windows dosyaları ve dizinleriyle çalışırken, büyük/küçük harf duyarlılığının nasıl işleneceğini ayarlamanız gerekebilir.

Standart davranış:

  • Windows dosya sistemi, dosya ve dizin adlarını büyük/küçük harfe duyarsız olarak ele alır. FOO.txt ve foo.txt eşdeğer dosyalar olarak değerlendirilir.
  • Linux dosya sistemi dosya ve dizin adlarını büyük/küçük harfe duyarlı olarak ele alır. FOO.txt ve foo.txt ayrı dosyalar olarak değerlendirilir.

Windows dosya sistemi, dizin başına öznitelik bayraklarıyla büyük/küçük harf duyarlılığı ayarlamayı destekler. Standart davranış büyük/küçük harfe duyarsız olacak şekilde ayarlanmışken, bir dizini büyük/küçük harfe duyarlı hale getirmek için bir öznitelik bayrağı atayabilirsiniz, böylece yalnızca büyük/küçük harfe göre farklılık gösterebilecek Linux dosyalarını ve klasörlerini tanıyabilir.

Bu durum, sürücüleri Linux için Windows Alt Sistemi (WSL) dosya sistemine bağlarken özellikle geçerli olabilir. WSL dosya sisteminde çalışırken Linux kullanıyorsunuz, bu nedenle dosyalar ve dizinler varsayılan olarak büyük/küçük harfe duyarlı olarak değerlendirilir.

Not

Geçmişte, adı yalnızca büyük/küçük harfe göre farklılık gösteren dosyalarınız varsa, Windows uygulamaları dosya sistemini büyük/küçük harfe duyarsız olarak kabul ettiğinden ve adları yalnızca büyük/küçük harfe göre farklılık gösteren dosyalar arasında ayrım yapamayacağından, bu dosyalara Windows tarafından erişilemedi. Windows Dosya Gezgini her iki dosyayı da gösterse de, seçtiğiniz dosyadan bağımsız olarak yalnızca bir dosya açılır.

Dosyaların ve dizinlerin büyük/küçük harf duyarlılığını değiştirme

Aşağıdaki adımlar, Windows dosya sistemindeki bir dizinin büyük/küçük harfe duyarlı olması ve yalnızca büyük/küçük harfe göre farklılık gösteren dosya ve klasörleri tanıması için nasıl değiştirileceğini açıklar.

Uyarı

Dosya sisteminin büyük/küçük harfe duyarsız olduğu varsayımını kullanan bazı Windows uygulamaları, dosyalara başvurmak için doğru durumu kullanmaz. Örneğin, uygulamaların dosya adlarını büyük veya küçük harfleri kullanacak şekilde dönüştürmesi sık karşılaşılan bir durum değildir. Büyük/küçük harfe duyarlı olarak işaretlenmiş dizinlerde bu, bu uygulamaların dosyalara artık erişemeyecekleri anlamına gelir. Ayrıca, Windows uygulamaları büyük/küçük harfe duyarlı dosyalar kullandığınız bir dizin ağacında yeni dizinler oluşturursa, bu dizinler büyük/küçük harfe duyarlı değildir. Bu, hassas dizinlerde Windows araçlarıyla çalışmayı zorlaştırabilir, bu nedenle Windows dosya sistemi büyük/küçük harf duyarlılığı ayarlarını değiştirirken dikkatli olun.

Geçerli durumdaki büyük/küçük harf duyarlılığını inceleyin

Bir dizinin Windows dosya sisteminde büyük/küçük harfe duyarlı olup olmadığını denetlemek için komutunu çalıştırın:

fsutil.exe file queryCaseSensitiveInfo <path>

<path> dosya yolunuzla değiştirin. Windows (NTFS) dosya sistemindeki bir dizin için <path> şöyle görünür: C:\Users\user1\case-test veya zaten user1 dizinindeyseniz şunu çalıştırabilirsiniz: fsutil.exe file setCaseSensitiveInfo case-test

Büyük/küçük harf duyarlılığını değiştir

Windows 10, derleme 17107'de dizin başına büyük/küçük harf duyarlılığı desteği başladı. Windows 10, yapı 17692'de, WSL içindeyken bir dizinin büyük/küçük harf duyarlılığı bayrağını inceleme ve değiştirme desteği güncellendi. Büyük harf duyarlılığı, system.wsl_case_sensitiveadlı ek bir öznitelik kullanılarak gösterilir. Bu özniteliğin değeri büyük/küçük harfe duyarlı olmayan dizinler için 0, büyük/küçük harfe duyarlı dizinler için 1 olacaktır.

Dizinin büyük/küçük harf duyarlılığını değiştirmek için yükseltilmiş izinler çalıştırmanız gerekir (Yönetici olarak çalıştır). Büyük/küçük harf duyarlılığı bayrağını değiştirmek için dizinde "Yazma öznitelikleri", "Dosya oluştur", "Klasör oluştur" ve "Alt klasörleri ve dosyaları sil" izinleri de gerekir. Buhakkında daha fazla bilgi için sorun giderme bölümüne bakın.

Windows dosya sistemindeki bir dizini büyük/küçük harfe duyarlı (FOO ≠ foo) olacak şekilde değiştirmek için PowerShell'i Yönetici olarak çalıştırın ve aşağıdaki komutu kullanın:

fsutil.exe file setCaseSensitiveInfo <path> enable

Windows dosya sistemindeki bir dizini büyük/küçük harfe duyarlı olmayan varsayılana (FOO = foo) geri döndürmek için PowerShell'i Yönetici olarak çalıştırın ve komutunu kullanın:

fsutil.exe file setCaseSensitiveInfo <path> disable

Bir dizinin büyük/küçük harf duyarlılığı özelliğini değiştirmek için dizinin boş olması gerekir. Adları yalnızca büyük/küçük harfe göre farklılık gösteren klasörler/dosyalar içeren bir dizinde büyük/küçük harf duyarlılığı bayrağını devre dışı bırakamazsınız.

Büyük/küçük harf duyarlılığının mirası

Yeni dizinler oluştururken, bu dizinler büyük/küçük harf duyarlılığını üst dizininden devralır.

Uyarı

WSL 1 modunda çalıştırılırken bu devralma ilkesinde bir özel durum vardır. WSL 1 modunda bir dağıtım çalışırken, dizin başına büyük/küçük harf duyarlılığı bayrağı devralınmıyor; büyük/küçük harfe duyarlı bir dizinde oluşturulan dizinler otomatik olarak büyük/küçük harf duyarlılığı kazanmaz. Her dizini büyük/küçük harfe duyarlı olarak açıkça işaretlemeniz gerekir

WSL yapılandırma dosyasında bir sürücü bağlamak için harf duyarlılığı ayarları

WSL yapılandırma dosyası kullanılarak Linux için Windows Alt Sistemi'ne bir sürücü bağlanırken büyük/küçük harf duyarlılığı yönetilebilir. Yüklediğiniz her Linux dağıtımı, /etc/wsl.confadlı kendi WSL yapılandırma dosyasına sahip olabilir. Bir sürücüyü bağlama hakkında daha fazla bilgi için bkz. WSL 2'de Linux disk bağlamaya başlama .

Bir sürücüyü bağlarken wsl.conf dosyasındaki büyük/küçük harf duyarlılığı seçeneğini yapılandırmak için:

  1. Kullanacağınız Linux dağıtımını açın (örneğin. Ubuntu).
  2. etc klasörünü görene kadar dizinleri yukarı değiştirin (bu, cd .. dizininden home gerektirebilir).
  3. etc bir dosyanın zaten var olup olmadığını görmek için wsl.conf dizinindeki dosyaları listeleyin (ls komutunu kullanın veya dizini Windows Dosya Gezgini ile görüntülemek için explorer.exe .).
  4. wsl.conf dosyası henüz yoksa, şunu kullanarak oluşturabilirsiniz: sudo touch wsl.conf veya nano düzenleyiciden kaydettikten sonra dosyayı oluşturacak sudo nano /etc/wsl.confkomutunu çalıştırarak.
  5. wsl.conf dosyanıza eklemek için aşağıdaki seçenekler kullanılabilir:

Varsayılan ayar: off Büyük/küçük harf duyarlılığı kullanılamıyor (bağlı NTFS sürücülerindeki tüm dizinler büyük/küçük harfe duyarlı olmayacaktır).

[automount]
options = case = off

Dizin başına büyük/küçük harf duyarlılığını etkinleştirme: dir

[automount]
options = case = dir

(NTFS) sürücüsündeki tüm dizinleri büyük/küçük harfe duyarlı olarak değerlendirin: force

[automount]
options = case = force

Bu seçenek yalnızca WSL 1 olarak çalışan Linux dağıtımlarında sürücüleri bağlamak için desteklenir ve bir kayıt anahtarı gerektirebilir. Kayıt anahtarı eklemek için yükseltilmiş (yönetici) komut isteminden şu komutu kullanabilirsiniz: reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\lxss /v DrvFsAllowForceCaseSensitivity /t REG_DWORD /d 1.

Bu değişikliklerin geçerli olması için wsl.conf dosyasında herhangi bir değişiklik yaptıktan sonra WSL'yi yeniden başlatmanız gerekir. WSL'yi şu komutu kullanarak yeniden başlatabilirsiniz: wsl --shutdown

Bahşiş

TÜM sürücüler için belirli bir büyük/küçük harf duyarlılığı ayarıyla bir sürücüyü (/mnt/c, /mnt/d vb. gibi) /mnt altında kullanılabilir hale getirmek amacıyla DrvFs dosya sistemi eklentisini kullanan bir sürücüyü bağlamak için, yukarıda açıklandığı gibi /etc/wsl.conf kullanın. Belirli bir sürücü için varsayılan bağlama seçeneklerini ayarlamak üzere /etc/fstab dosya kullanarak bu seçenekleri belirtin. Daha fazla WSL yapılandırma seçeneği için bakınız: wslconfile dağıtım başlatma ayarlarını yapılandırma.

WSL dağıtımına bağlı bir sürücüde büyük/küçük harf duyarlılığını değiştirme

WSL dağıtımına bağlı NTFS biçimli sürücüler varsayılan olarak büyük/küçük harfe duyarsız olacaktır. WSL dağıtımına bağlı bir sürücüdeki bir dizinin büyük/küçük harf duyarlılığını değiştirmek için (örneğin. Ubuntu), Windows dosya sistemi için yukarıda listelenen adımları izleyin. (EXT4 sürücüleri varsayılan olarak büyük/küçük harfe duyarlı olacaktır).

Dizinde büyük/küçük harf duyarlılığını etkinleştirmek için (FOO ≠ foo), komutunu kullanın:

fsutil.exe file setCaseSensitiveInfo <path> enable

Bir dizinde büyük/küçük harf duyarlılığını devre dışı bırakmak ve büyük/küçük harfe duyarsız varsayılana (FOO = foo) dönmek için komutunu kullanın:

fsutil.exe file setCaseSensitiveInfo <path> disable

Not

WSL çalışırken bağlı bir sürücü için mevcut dizindeki büyük/küçük harfe duyarlı bayrağı değiştirirseniz, WSL'nin bu dizine hiçbir başvurusu olmadığından emin olun. Aksi takdirde değişiklik etkili olmaz. Bu, dizinin veya onun alt dizinlerinin geçerli çalışma dizini olarak kullanılması da dahil olmak üzere, hiçbir WSL işlemi tarafından açık tutulmaması gerektiği anlamına gelir.

Git ile büyük/küçük harf duyarlılığını yapılandırma

Git sürüm denetim sistemi, üzerinde çalıştığınız dosyaların büyük/küçük harf duyarlılığını ayarlamak için kullanılabilecek bir yapılandırma ayarına da sahiptir. Git kullanıyorsanız, git config core.ignorecase ayarını ayarlamak isteyebilirsiniz.

Git'i büyük/küçük harfe duyarlı (FOO.txt ≠ foo.txt) olarak ayarlamak için şunları girin:

git config core.ignorecase false

Git'i büyük/küçük harfe duyarsız (FOO.txt = foo.txt) olarak ayarlamak için şunları girin:

git config core.ignorecase true

Büyük/küçük harfe duyarlı olmayan bir dosya sisteminde bu seçeneğin false olarak ayarlanması kafa karıştırıcı hatalara, yanlış çakışmalara veya yinelenen dosyalara yol açabilir.

Daha fazla bilgi için Git Yapılandırması belgelerine bakın.

Sorun giderme

Dizinimde büyük/küçük harf karışık ve harf duyarlılığı gerektiren dosyalar var, fakat Windows FS araçları bu dosyaları büyük/küçük harf duyarlılığından dolayı tanımıyor.

Karma büyük/küçük harf dosyaları içeren bir Linux dizininde çalışmak üzere Windows dosya sistemi araçlarını kullanmak için, yepyeni bir dizin oluşturmanız ve büyük/küçük harfe duyarlı olacak şekilde ayarlamanız ve ardından dosyaları bu dizine kopyalamanız gerekir (git clone veya untar kullanarak). Dosyalar karışık durumda kalır. (Dosyaları büyük/küçük harfe duyarlı olmayan bir dizine taşımayı zaten denediyseniz ve çakışmalar varsa, büyük olasılıkla üzerine yazılmış bazı dosyalar olduğunu ve artık kullanılamayacağını unutmayın.)

Hata: Dizin boş değil

Diğer dosyaları veya dizinleri içeren bir dizinde büyük/küçük harf duyarlılığı ayarını değiştiremezsiniz. Yeni bir dizin oluşturmayı, ayarı değiştirmeyi ve ardından karma durum dosyalarınızı bu dizine kopyalamayı deneyin.

Hata: Erişim reddedildi

Büyük/küçük harf duyarlılığını değiştirmek için gereken dizinde "Yazma öznitelikleri", "Dosya oluşturma", "Klasör oluşturma" ve "Alt klasörleri ve dosyaları sil" izinlerine sahip olduğunuzdan emin olun. Bu ayarları denetlemek için, dizini Windows Dosya Gezgini'nde açın (komut satırından komutunu kullanın: explorer.exe .). Dizine sağ tıklayın ve Özellikler'ni seçerek Belge Özellikleri penceresini açın, ardından dizin izinlerini görüntülemek veya değiştirmek için Düzenle seçin.

NTFS dizinlerindeki izinleri görüntülemek veya değiştirmek için özellikler pencerelerini

Hata: Bu işlem için yerel bir NTFS birimi gerekiyor

Büyük/küçük harf duyarlılığı özniteliği yalnızca NTFS biçimli bir dosya sistemindeki dizinlerde ayarlanabilir. WSL (Linux) dosya sistemindeki dizinler varsayılan olarak büyük/küçük harfe duyarlıdır (ve fsutil.exe aracı kullanılarak büyük/küçük harfe duyarsız olarak ayarlanamaz).

Ek kaynaklar