Mengapa case NTFS sensitif?

24

Saya pribadi berpikir bahwa NTFS tidak sensitif huruf besar, karena Anda dapat mengetikkan cmd, CMD, cMd atau bahkan CmD dan masih mendapatkan command prompt. Namun, mengapa selama CHKDSK x: /f /r, terkadang memperbaiki kapitalisasi pada beberapa file? Jika tidak peduli dengan kasusnya, itu tidak masalah, dan CHKDSK seharusnya tidak memeriksa apakah itu CMD atau cmd. Apakah saya benar? Di manakah sebenarnya masalahnya dalam sistem file?

Luke Kanada REINSTATE MONICA
sumber
25
Perhatikan bahwa "case-sensitive" dan "case-preserving" adalah dua hal yang terpisah. NTFS adalah case-preserving tetapi case-insensitive dalam namespace Win32, tetapi bisa case-sensitive dalam namespace POSIX.
grawity

Jawaban:

34

Sensitivitas kasus sistem file adalah masalah yang terpisah dari sistem operasi. Rilis Windows terbaru didasarkan pada kernel NT, yang mewarisi banyak properti dari Windows 95 non-NT dan bahkan MS-DOS. Bersamaan dengan kernel NT, sistem file, NTFS, dirancang untuk peka huruf besar kecil - agar sesuai dengan POSIX .

Meskipun subsistem Win32 tidak mendukung nama file yang hanya berbeda berdasarkan sensitivitas huruf, dimungkinkan untuk membuat file-file dengan panggilan sistem tingkat yang lebih rendah.

jujur
sumber
1
Saya tidak mengetahui cara mudah untuk membuat file seperti itu di Windows. Namun, memanggil API CreateFile () dengan FILE_FLAG_POSIX_SEMANTICS sedikit harus melakukan pekerjaan secara terprogram.
Frank
2
@ Lukas: Win32 tidak mendukung file case sensitif. Anda harus membuat panggilan API ke dalam subsistem OS. osronline.com/article.cfm?id=91
surfasb
2
@ Lukas: Salah satu cara mudah adalah me-mount drive NTFS dari sistem Linux dan membuat file yang Anda inginkan di sana :)
Hippo
1
Pastikan bahwa Anda memiliki versi Windows NT yang tepat dan instal subsistem untuk utilitas Aplikasi berbasis UNIX, orang.
JdeBP
1
@ Lukas: Seperti biasa, Wikipedia menyelamatkan. :-)
afrazier
7

Sebenarnya bukan NTFS yang Anda tanyakan.

NTFS adalah sistem file. Pertanyaan Anda sebenarnya tentang sensitivitas case dari shell perintah Windows. Mereka sangat berbeda. Windows Explorer adalah shell perintah grafis. Dengan memasukkan cmd(dalam Mulai | Jalankan misalnya) Anda memberi tahu shell perintah Windows untuk mengeksekusi perintah cmd(yang itu sendiri sebenarnya adalah shell perintah lain, tetapi berdasarkan baris perintah daripada grafis).

Demikian pula, CHKDSK tidak melakukan pemeriksaan apa pun pada apakah Anda menggunakan CMD atau cmd. Semua CHKDSK tahu tentang parameter yang Anda berikan padanya, yang dalam hal ini adalah x :, / f dan / r.

Adapun CHKDSK "memperbaiki kapitalisasi", saya tidak begitu yakin apa yang Anda maksud di sana.

squillman
sumber
4
NTFS peka terhadap huruf besar-kecil. Menurut artikel MS KB 100625: Di NTFS, Anda dapat membuat nama file unik, disimpan di direktori yang sama, yang hanya berbeda dalam kasus. Misalnya, nama file berikut dapat hidup berdampingan dalam satu direktori pada volume NTFS: CASE.TXT case.txt case.TXT Namun, jika Anda mencoba untuk membuka salah satu file ini di aplikasi Win32, seperti Notepad, Anda hanya akan memiliki akses ke salah satu file, terlepas dari kasus nama file yang Anda ketik di kotak dialog Open File.
Frank
Itu benar, terima kasih telah menjelaskannya. Saya telah mengambil sedikit dari jawaban saya karena itu sebenarnya bukan apa yang dimaksud di sini.
squillman
> Namun, jika Anda mencoba untuk membuka salah satu file ini di aplikasi Win32, seperti Notepad, Anda hanya akan memiliki akses ke salah satu file, terlepas dari kasus nama file yang Anda ketik di kotak dialog Open File Yang mana?
Synetech
4
@ Sinetech: Yang pertama, mungkin? Tergantung pada urutan file di direktori, dan mungkin fase bulan.
grawity
5

Saya menduga klaim pertanyaan penanya bahwa chkdsk.exe adalah "memperbaiki kapitalisasi dalam beberapa file" sebenarnya diminta oleh pesan dari CHKDSK yang terjadi dalam beberapa keadaan:

mengoreksi kesalahan dalam file huruf besar

Pada dasarnya, ini dihasilkan dari chkdsk.exe versi Windows XP yang berjalan melawan volume NTFS yang telah diformat di versi Windows yang lebih baru, seperti yang dijelaskan dalam pesan galat ketika Anda menjalankan Chkdsk.exe pada berbasis Windows XP atau pada Windows Komputer berbasis Server 2003: "Memperbaiki kesalahan dalam file huruf besar" . Hasilnya adalah ini benar-benar bukan kesalahan, dan tidak ada hubungannya dengan sensitivitas case.

kreemoweet
sumber