私は、Windows OSが(一般的に)大文字と小文字を区別しないことを知っています。これはすべてのWindows OS(Windows 95からWindows 7まで)に当てはまりますか?Windowsの大文字と小文字を区別するレジストリ設定はありますか?
私は、Windows OSが(一般的に)大文字と小文字を区別しないことを知っています。これはすべてのWindows OS(Windows 95からWindows 7まで)に当てはまりますか?Windowsの大文字と小文字を区別するレジストリ設定はありますか?
回答:
はい、これはすべてのバージョンのWindowsに当てはまります。Windowsの大文字と小文字を区別する方法はありません。ただし、元々Unix / Linux用に開発され、その後移植された一部のアプリでは大文字と小文字が区別される場合があることに注意してください。たとえば、Cygwinでは大文字と小文字が区別されます。ただし、この動作は非常にまれです。
/bIn/BaSh
私のシステムでは動作しません。
実際、これはあなたの(プログラム)が使用するAPI / Windowsサブシステムに依存します。
「Windows API」(Windowsアプリの標準)を使用する場合、ファイル名は大文字と小文字を区別しません。ただし、POSIXサブシステム(別名Windows Services for Unix)を使用している場合は、大文字と小文字を区別することができます。
たとえば、このMSサポート記事を参照してください。WindowsXPおよびInterixサブシステムまたはSFUで大文字と小文字を区別する動作を有効にします。
CygwinはUnixをエミュレートしようとします。したがって、アプリケーションを中断しないように、大文字と小文字を区別する必要があります。Windows自体は大文字と小文字を区別しません。ファイルシステムについてです。詳細については、ファイルシステム、Microsoft Windowsのファイルシステム(Wikipedia)を参照してください。
unsupported
言うまでもなく非常に重要です。
/bIn/BaSh
Cygwinで実行してみて、大文字と小文字が区別されることをもう一度教えてください。
Microsoftは、NTFSディレクトリ(フォルダー)に適用できる新しい大文字と小文字を区別するフラグ(属性)を追加しました。このフラグが設定(有効)されているディレクトリの場合、FILE_FLAG_POSIX_SEMANTICSが指定されているかどうかに関係なく、そのディレクトリ内のファイルに対するすべての操作は大文字と小文字が区別されます。これは、大文字と小文字を区別するようにマークされたディレクトリに大文字と小文字のみが異なる2つのファイルがある場合、すべてのアプリケーションがそれらにアクセスできることを意味します。
以降でのWindows 10ビルド17107、Microsoftがfsutil.exeコマンドにこのフラグを表示および変更できる機能を追加しました。
ディレクトリで大文字と小文字が区別されるかどうかを確認するには、次のコマンドを実行します。
fsutil.exe file queryCaseSensitiveInfo <path>
ディレクトリを大文字と小文字を区別する、または区別しないとマークするには:
fsutil.exe file setCaseSensitiveInfo <path> enable
fsutil.exe file setCaseSensitiveInfo <path> disable
これはここからです。他の著者が提案HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive
した0
ようにレジストリ値を設定できます。add.reg
次の内容の名前のファイルを作成して実行します。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"obcaseinsensitive"=dword:00000000
次に、Cygwinを使用して、大文字と小文字を区別するファイル名を操作します。
これを行うには、この記事で提案さposix=1
れているように/etc/fstab
、オプションでNTFSファイルシステムをマウントする必要があります。ここに私のスニペットがあります:fstab
none /cygdrive cygdrive binary,posix=1,user 0 0
C: /cygdrive/c ntfs binary,posix=1,user,auto 0 0
C:/Users /home ntfs binary,posix=1,user,auto 0 0
上記が完了したら、使用して、大文字と小文字を区別したファイル名を扱うことができるでしょうbash
、mc
、git
など
両方を編集したら、必ず再起動してください。
Barfieldmvは正しいです。ファイルシステムは実際に大文字と小文字が区別され、ファイルは適切な大文字と小文字で保存されます。ファイルアクセスレイヤーは、ファイルを新しいファイル記述子に一致させるときに大文字と小文字を削除します。