ご存知かもしれませんが、WindowsファイルシステムであるNTFSは、ファイル名とフォルダ名を大文字と小文字を区別しないものとして扱います。たとえば、OSとアプリの場合、MyFile.txtとmyfile.txtは同じファイルです。ただし、Linuxでは状況が異なります。このOSの場合、これらは2つの異なるファイルです。この動作の違いにより、WSLユーザーに問題が発生する可能性があります。それらを解決するために、Windows 10には、フォルダーの大文字と小文字を区別するモードを有効にする機能が含まれています。
広告
使用したことがある場合 Linux用のWindowsサブシステム 、Windowsファイルシステム(/ mnt / c、/ mnt / dなどの下にマウントされている)を大文字と小文字を区別して扱うことができることをおそらくご存知でしょう。これは、特に、名前が大文字と小文字だけが異なるファイル(foo.txtやFOO.TXTなど)を作成できることを意味します。
ただし、これらのファイルをWindowsで使用することは実際には不可能でした。 Windowsアプリケーションはファイルシステムを大文字と小文字を区別しないものとして扱うため、大文字と小文字のみが異なる名前のファイルを区別することはできません。ファイルエクスプローラーには両方のファイルが表示されますが、どちらをクリックしたかに関係なく、1つだけが開かれます。
Windows Insider Build 17093以降、Windowsで大文字と小文字を区別するファイルを処理する新しい方法があります。ディレクトリごとの大文字と小文字の区別です。この機能は、大文字と小文字を区別するファイルを使用する際の相互運用性を向上させるために追加されました。また、通常のWindowsアプリケーションで使用できます。 Windows 10ビルド17110以降、この動作がデフォルトです。
詳細
Windowsでの大文字と小文字の区別
Windows NTファミリのオペレーティングシステム(Windows 10を含む)には、常に大文字と小文字を区別するファイルシステム操作を実行する機能がありました。アプリケーションは合格することができますFILE_FLAG_POSIX_SEMANTICS
にフラグを立てるCreateFile
パスで大文字と小文字を区別するように処理することを示すAPI。ただし、互換性の理由から、この動作を上書きするグローバルレジストリキーがあります。このキーを設定すると、ファイル操作で大文字と小文字が区別されなくなります。FILE_FLAG_POSIX_SEMANTICS
フラグが指定されています。 Windows XP以降、これがデフォルトになっています。
Steam 友達のウィッシュリストを見る方法
Linux用のWindowsサブシステムは、それ自体がそのレジストリキーをバイパスする別のメカニズムを使用して、大文字と小文字を区別するファイルシステム操作を実行できるようにします。これにより、WSLで実行されているLinuxアプリケーションは、グローバルレジストリキーが設定されていても、実際のLinuxで使用できるのと同じように、大文字と小文字だけが異なるファイル名を使用できます。
残念ながら、これにより、Windowsアプリケーションからアクセスできないファイルが残ります。グローバルレジストリキーを変更することはできますが、それでも、を使用するアプリケーションでのみ機能します。FILE_FLAG_POSIX_SEMANTICS
、これにより、すべてのドライブ上のすべてのファイルの動作が変更されます。これは意図されていない可能性があり、一部のアプリケーションが破損する可能性があります。
ディレクトリごとの大文字と小文字の区別
この問題を解決するために、Microsoftは、ディレクトリに適用できる新しい大文字と小文字を区別するフラグを追加しました。このフラグが設定されているディレクトリの場合、そのディレクトリ内のファイルに対するすべての操作では、大文字と小文字が区別されます。FILE_FLAG_POSIX_SEMANTICS
指定されました。これは、大文字と小文字が区別されるとマークされたディレクトリに大文字と小文字のみが異なる2つのファイルがある場合、すべてのアプリケーションがそれらにアクセスできることを意味します。
フォルダの大文字と小文字を区別するモードを有効にする
この機能を有効または無効にするには、組み込みのfsutil.exeアプリを使用する必要があります。
フォルダの大文字と小文字を区別するモードを有効にするには 、 以下をせよ。
- 開いた 昇格したコマンドプロンプト 。
- 次のコマンドを入力します。
fsutil.exeファイルsetCaseSensitiveInfo 'フォルダへのフルパス' enable
パス部分をPCに一致する正しいパスに置き換えます。
例えば、fsutil.exeファイルsetCaseSensitiveInfo'C: data Winaero Linux 'enable
- これで完了です。
これで、同じ名前で大文字と小文字を区別するだけで2つのファイルを作成できます。 Windows 10は、この特定のフォルダーでそれらを正しく処理します。
私はマインクラフトをどのくらいプレイしていますか
フォルダの機能ステータスを確認するには、コマンドを実行します
fsutil.exeファイルqueryCaseSensitiveInfo 'フォルダへのフルパス'
例えば、
fsutil.exeファイルqueryCaseSensitiveInfo'C: data Winaero Linux '
次のようなものが表示されます。
電源が入らない vizio テレビをリセットする方法
最終的に、 フォルダの大文字と小文字を区別するモードを無効にするには 、管理者として開いたコマンドプロンプトで次のコマンドを実行します。
fsutil.exeファイルsetCaseSensitiveInfo'C: data Winaero Linux 'disable
正しいフォルダパスを使用すれば完了です。
注意: 空でないフォルダーのCaseSensitiveInfo属性を無効にすることはサポートされていません。フォルダを無効にする前に、フォルダからすべてのファイルを削除する必要があります。
それでおしまい。