Menyesuaikan sensitivitas kasus

Sensitivitas kasus menentukan apakah huruf besar (FOO.txt) dan huruf kecil (foo.txt) ditangani sebagai berbeda (peka huruf besar/kecil) atau setara (tidak peka huruf besar/kecil) dalam nama file atau direktori.

  • Peka huruf besar/kecil: FOO.txt ≠ foo.txt ≠ Foo.txt
  • Tidak peka huruf besar/kecil: FOO.txt = foo.txt = Foo.txt

Perbedaan antara sensitivitas kasus Windows dan Linux

Saat bekerja dengan file dan direktori Linux dan Windows, Anda mungkin perlu menyesuaikan bagaimana sensitivitas kasus ditangani.

Perilaku standar:

  • Sistem file Windows memperlakukan nama file dan direktori sebagai tidak peka huruf besar/kecil. FOO.txt dan foo.txt akan diperlakukan sebagai file yang setara.
  • Sistem file Linux memperlakukan nama file dan direktori sebagai peka huruf besar/kecil. FOO.txt dan foo.txt akan diperlakukan sebagai file yang berbeda.

Sistem file Windows mendukung pengaturan sensitivitas kasus dengan bendera atribut per direktori. Meskipun perilaku standar tidak peka huruf besar/kecil, Anda dapat menetapkan bendera atribut untuk membuat kasus direktori sensitif, sehingga akan mengenali file dan folder Linux yang mungkin berbeda hanya menurut kasus.

Ini mungkin sangat benar ketika memasang drive ke sistem file Subsistem Windows untuk Linux (WSL). Saat bekerja dalam sistem file WSL, Anda menjalankan Linux, sehingga file dan direktori diperlakukan sebagai peka huruf besar/kecil secara default.

Catatan

Di masa lalu, jika Anda memiliki file yang namanya berbeda hanya menurut kasus, file-file ini tidak dapat diakses oleh Windows, karena aplikasi Windows memperlakukan sistem file sebagai tidak peka huruf besar/kecil dan tidak dapat membedakan antara file yang namanya hanya berbeda dalam kasus. Sementara Windows File Explorer akan menampilkan kedua file, hanya satu yang akan terbuka terlepas dari yang Anda pilih.

Mengubah sensitivitas kasus file dan direktori

Langkah-langkah berikut menjelaskan cara mengubah direktori pada sistem file Windows sehingga peka huruf besar/kecil dan akan mengenali file dan folder yang hanya berbeda menurut kasus.

Peringatan

Beberapa aplikasi Windows, menggunakan asumsi bahwa sistem file tidak peka huruf besar/kecil, jangan gunakan kasus yang benar untuk merujuk ke file. Misalnya, tidak jarang aplikasi mengubah nama file untuk menggunakan semua huruf besar atau kecil. Dalam direktori yang ditandai sebagai peka huruf besar/kecil, ini berarti bahwa aplikasi ini tidak dapat lagi mengakses file. Selain itu, jika aplikasi Windows membuat direktori baru di pohon direktori tempat Anda menggunakan file sensitif huruf besar/kecil, direktori ini tidak peka huruf besar/kecil. Ini dapat menyulitkan untuk bekerja dengan alat Windows jika direktori sensitif berjaga-jaga, jadi berhati-hatilah saat mengubah pengaturan sensitivitas kasus sistem file Windows.

Memeriksa sensitivitas kasus saat ini

Untuk memeriksa apakah direktori peka huruf besar/kecil di sistem file Windows, jalankan perintah :

fsutil.exe file queryCaseSensitiveInfo <path>

Ganti <path> dengan jalur file Anda. Untuk direktori di sistem file Windows (NTFS), <path> akan terlihat seperti: C:\Users\user1\case-test atau jika Anda sudah berada di user1 direktori, Anda hanya dapat menjalankan: fsutil.exe file setCaseSensitiveInfo case-test

Mengubah sensitivitas huruf besar/kecil

Dukungan untuk sensitivitas kasus per direktori dimulai di Windows 10, build 17107. Di Windows 10, build 17692, dukungan diperbarui untuk menyertakan pemeriksaan dan modifikasi bendera sensitivitas kasus untuk direktori dari dalam WSL. Sensitivitas kasus diekspos menggunakan atribut yang diperluas bernama system.wsl_case_sensitive. Nilai atribut ini akan menjadi 0 untuk direktori yang tidak peka huruf besar/kecil, dan 1 untuk direktori peka huruf besar/kecil.

Mengubah sensitivitas huruf besar/kecil direktori mengharuskan Anda menjalankan izin yang ditinggikan (jalankan sebagai Administrator). Mengubah bendera sensitivitas huruf besar/kecil juga memerlukan izin "Tulis atribut", "Buat file", "Buat folder" dan "Hapus subfolder dan file" pada direktori. Lihat bagian pemecahan masalah untuk informasi selengkapnya tentang hal ini.

Untuk mengubah direktori dalam sistem file Windows sehingga peka huruf besar/kecil (FOO ≠ foo), jalankan PowerShell sebagai Administrator dan gunakan perintah :

fsutil.exe file setCaseSensitiveInfo <path> enable

Untuk mengubah direktori dalam sistem file Windows kembali ke default yang tidak peka huruf besar/kecil (FOO = foo), jalankan PowerShell sebagai Administrator dan gunakan perintah :

fsutil.exe file setCaseSensitiveInfo <path> disable

Direktori harus kosong untuk mengubah atribut bendera sensitivitas huruf besar/kecil pada direktori tersebut. Anda tidak dapat menonaktifkan bendera sensitivitas huruf besar/kecil pada direktori yang berisi folder/file yang namanya berbeda hanya berdasarkan kasus.

Warisan sensitivitas kasus

Saat membuat direktori baru, direktori tersebut akan mewarisi sensitivitas kasus dari direktori induknya.

Peringatan

Ada pengecualian untuk kebijakan pewarisan ini saat berjalan dalam mode WSL 1. Ketika distribusi berjalan dalam mode WSL 1, bendera sensitivitas kasus per direktori tidak diwarisi; direktori yang dibuat dalam direktori peka huruf besar/kecil tidak secara otomatis peka huruf besar/kecil. Anda harus secara eksplisit menandai setiap direktori sebagai peka huruf besar/kecil

Opsi sensitivitas kasus untuk memasang drive dalam file konfigurasi WSL

Sensitivitas kasus dapat dikelola saat memasang drive pada Subsistem Windows untuk Linux menggunakan file konfigurasi WSL. Setiap distribusi Linux yang telah Anda instal dapat memiliki file konfigurasi WSL sendiri, yang disebut /etc/wsl.conf. Untuk informasi selengkapnya tentang cara memasang drive, lihat Mulai memasang disk Linux di WSL 2.

Untuk mengonfigurasi opsi sensitivitas kasus dalam wsl.conf file saat memasang drive:

  1. Buka distribusi Linux yang akan Anda gunakan (yaitu. Ubuntu).
  2. Ubah direktori hingga Anda melihat etc folder (ini mungkin mengharuskan Anda untuk cd .. naik dari home direktori).
  3. Cantumkan file dalam etc direktori untuk melihat apakah wsl.conf file sudah ada (gunakan ls perintah , atau explorer.exe . untuk melihat direktori dengan Windows File Explorer).
  4. wsl.conf Jika file belum ada, Anda dapat membuatnya menggunakan: sudo touch wsl.conf atau dengan menjalankan sudo nano /etc/wsl.conf, yang akan membuat file setelah menyimpan dari editor Nano.
  5. Opsi berikut ini tersedia untuk Anda tambahkan ke dalam file Anda wsl.conf :

Pengaturan default: dir untuk mengaktifkan sensitivitas kasus per direktori.

[automount]
options = case = dir

Sensitivitas kasus tidak tersedia (semua direktori pada drive NTFS yang dipasang tidak akan peka huruf besar/kecil): off

[automount]
options = case = off

Perlakukan semua direktori pada drive (NTFS) sebagai peka huruf besar/kecil: force

[automount]
options = case = force

Opsi ini hanya didukung untuk memasang drive pada distribusi Linux yang berjalan sebagai WSL 1 dan mungkin memerlukan kunci pendaftaran. Untuk menambahkan kunci pendaftaran, Anda dapat menggunakan perintah ini dari prompt perintah yang ditinggikan (admin): reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\lxss /v DrvFsAllowForceCaseSensitivity /t REG_DWORD /d 1.

Anda harus memulai ulang WSL setelah membuat perubahan apa pun pada file agar perubahan tersebut wsl.conf diterapkan. Anda dapat memulai ulang WSL menggunakan perintah : wsl --shutdown

Tip

Untuk memasang drive (yang menggunakan plugin filesystem DrvFs untuk membuat disk tersedia di bawah /mnt, seperti /mnt/c, /mnt/d, dll) dengan pengaturan sensitivitas kasus tertentu untuk SEMUA drive, gunakan /etc/wsl.conf seperti yang dijelaskan di atas. Untuk mengatur opsi pemasangan default untuk satu drive tertentu, gunakan /etc/fstab file untuk menentukan opsi ini. Untuk opsi konfigurasi WSL lainnya, lihat Mengonfigurasi pengaturan peluncuran per distro dengan wslconf.

Mengubah sensitivitas huruf besar/kecil pada drive yang dipasang ke distribusi WSL

Drive berformat NTFS yang dipasang ke distribusi WSL akan tidak peka huruf besar/kecil secara default. Untuk mengubah sensitivitas huruf besar/kecil untuk direktori pada drive yang dipasang ke distribusi WSL (yaitu. Ubuntu), ikuti langkah-langkah yang sama seperti yang tercantum di atas untuk sistem file Windows. (Drive EXT4 akan peka huruf besar/kecil secara default).

Untuk mengaktifkan sensitivitas huruf besar/kecil pada direktori (FOO ≠ foo), gunakan perintah :

fsutil.exe file setCaseSensitiveInfo <path> enable

Untuk menonaktifkan sensitivitas huruf besar/kecil pada direktori dan kembali ke default yang tidak peka huruf besar/kecil (FOO = foo), gunakan perintah :

fsutil.exe file setCaseSensitiveInfo <path> disable

Catatan

Jika Anda mengubah bendera sensitif huruf besar/kecil pada direktori yang ada untuk drive yang dipasang saat WSL berjalan, pastikan WSL tidak memiliki referensi ke direktori tersebut atau perubahan tersebut tidak akan efektif. Ini berarti direktori tidak boleh dibuka oleh proses WSL apa pun, termasuk menggunakan direktori (atau turunannya) sebagai direktori kerja saat ini.

Mengonfigurasi sensitivitas kasus dengan Git

Sistem kontrol versi Git juga memiliki pengaturan konfigurasi yang dapat digunakan untuk menyesuaikan sensitivitas kasus untuk file yang sedang Anda kerjakan. Jika Anda menggunakan Git, Anda mungkin ingin menyesuaikan git config core.ignorecase pengaturan.

Untuk mengatur Git menjadi peka huruf besar/kecil (FOO.txt ≠ foo.txt), masukkan:

git config core.ignorecase false

Untuk mengatur Git menjadi tidak peka huruf besar/kecil (FOO.txt = foo.txt), masukkan:

git config core.ignorecase true

Mengatur opsi ini ke false pada sistem file yang tidak peka huruf besar/kecil dapat menyebabkan kesalahan yang membingungkan, konflik palsu, atau file duplikat.

Untuk informasi selengkapnya, lihat dokumentasi Konfigurasi Git.

Pemecahan Masalah

Direktori saya memiliki file yang merupakan kasus campuran dan memerlukan sensitivitas kasus tetapi alat Windows FS tidak akan mengenali file-file ini

Untuk menggunakan alat sistem file Windows untuk bekerja pada direktori Linux yang berisi file kasus campuran, Anda harus membuat direktori baru dan mengaturnya menjadi peka huruf besar/kecil, lalu menyalin file ke direktori tersebut (menggunakan klon git atau untar). File akan tetap menjadi kasus campuran. (Perhatikan bahwa jika Anda telah mencoba memindahkan file ke direktori yang tidak peka huruf besar/kecil dan ada konflik, kemungkinan ada beberapa file yang ditimpa dan tidak akan lagi tersedia.)

Kesalahan: Direktori tidak kosong

Anda tidak dapat mengubah pengaturan sensitivitas huruf besar/kecil pada direktori yang berisi file atau direktori lain. Coba buat direktori baru, ubah pengaturan, lalu salin file mixed-case Anda ke dalamnya.

Kesalahan: Akses ditolak

Pastikan Anda memiliki izin "Tulis atribut", "Buat file", "Buat folder" dan "Hapus subfolder dan file" pada direktori yang diperlukan untuk mengubah sensitivitas huruf besar/kecil. Untuk memeriksa pengaturan ini, buka direktori di Windows File Explorer (dari baris perintah, gunakan perintah: explorer.exe .). Klik kanan direktori dan pilih Properti untuk membuka jendela Properti Dokumen, lalu pilih Edit untuk melihat atau mengubah izin untuk direktori.

Properties windows to view or change permissions on NTFS directories

Kesalahan: Volume NTFS lokal diperlukan untuk operasi ini

Atribut sensitivitas kasus hanya dapat diatur pada direktori dalam sistem file berformat NTFS. Direktori dalam sistem file WSL (Linux) peka huruf besar/kecil secara default (dan tidak dapat diatur menjadi tidak peka huruf besar/kecil menggunakan alat fsutil.exe).

Sumber Daya Tambahan: