LinuxからNTFSパーティションに2つのファイルを簡単に書き込むことができ、両方のファイルに同じ文字が含まれているが大文字と小文字が異なる場合(たとえば、some_file.txtとSome_File.txt)があります。Linuxはそれらを区別します。
Windowsはこれらをどのように処理しますか?
LinuxからNTFSパーティションに2つのファイルを簡単に書き込むことができ、両方のファイルに同じ文字が含まれているが大文字と小文字が異なる場合(たとえば、some_file.txtとSome_File.txt)があります。Linuxはそれらを区別します。
Windowsはこれらをどのように処理しますか?
回答:
MS-DOS、WOW、およびWin32パーソナリティは、最初に一致したファイルを返します。一部のアプリケーションやAPIに関しては、大文字鈍感にされ強制(例えば、MS-DOSはそれに対処することはできません)。POSIXパーソナリティは区別され、デフォルトで大文字と小文字が区別されます(たとえば、UNIXツールがインストールされている場合)。ネイティブのWindows NTコマンドプロンプトには両方が表示されますが、設定(ObCaseInsensitive)とツールが使用するAPIによっては、最初に見つかったものにのみアクセスします。
参照のMicrosoft TechNetの記事のファイル名は、NTFSボリューム(KB100625)の大文字と小文字が区別され、また、様々なNTのサブシステムで大文字と小文字の区別の機微の詳細な議論:Windowsでの理解大文字と小文字の区別:obcaseinsensitive、FILE_CASE_SENSITIVE_SEARCH
特に、ObCaseInsensitive値は、NTオブジェクトマネージャ全体の大文字と小文字の区別を制御します。
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive
- 0に設定すると、オブジェクトマネージャーは大文字と小文字を区別するモードで実行されます。
- 1に設定すると、オブジェクトマネージャーは大文字と小文字を区別しないモードで実行されます。
- 指定しない場合、NT 5.1(Windows XP)以降のエディションはデフォルトで大文字と小文字を区別しないモードで実行されます。
- obcaseinsensitiveは、大文字と小文字を区別するモードで常に実行されるNT 5.0(Windows 2000)および以前のバージョンのNTでは意味がありません。
Cygwin は、この時点で基本的/効果的な大文字と小文字の区別の設定を選択する必要があります。
関連するスーパーユーザーの質問Windows 7でフォルダー名の大文字と小文字の区別を構成する方法は?TechNetの記事「ファイル名とフォルダー名の大文字と小文字の区別を構成する」では、この状況を定期的に処理する必要がある場合にNTでファイルとフォルダーの大文字と小文字を完全に有効にする方法について詳しく説明しています。
大文字と小文字を区別するツールに関する追加リソース/ NTFS / NFSボリュームへのアクセス:
more
ただし、疑問符を返すだけです。
そうではありません。大文字と小文字の違いを考慮しますが、それ以外はまったく同じ名前を同じファイルと見なします。
これをテストするには、すべて小文字のファイルを作成してから、大文字を1文字だけ使用して別のファイルを作成し、文句を言います。