Windows 10で大文字と小文字を区別するファイルとフォルダ名を有効にする方法
Windows 10は、Linuxや他のUNIXのようなオペレーティングシステムのように、大文字と小文字を区別するオプションのファイルシステムを提供します。この機能を有効にすると、すべてのWindowsプロセスが大文字と小文字を区別するファイルとフォルダを正しく処理します。つまり、「ファイル」と「ファイル」は2つの別々のファイルとして表示されます。.
この仕組み
これは、ディレクトリ単位で有効にできるNTFSファイルシステムの機能です。ファイルシステム全体には適用されないため、開発目的で使用する特定のフォルダに対して大文字と小文字の区別を有効にするだけで済みます。.
大文字と小文字の区別は、Windows 10の2018年4月の更新で追加されました。これ以前は、Windows環境のBash内で大文字と小文字を区別してWindowsフォルダをマウントすることができました。これはLinux用のWindowsサブシステムとしても知られています。これはLinux環境ではうまくいきましたが、通常のWindowsアプリケーションを混乱させました。これは現在、ファイルシステムレベルの機能です。つまり、すべてのWindowsアプリケーションで、そのフォルダ内で大文字と小文字が区別されるファイルシステムも表示されます。.
この機能は fsutil.exe
これはコマンドラインから実行する必要があります。コマンドプロンプトウィンドウまたはPowerShellウィンドウから実行できます。デフォルト設定では、Linux環境内で作成したフォルダも自動的に大文字と小文字が区別されるように設定されています。.
大文字と小文字を区別するディレクトリの設定方法
開始するには、[スタート]ボタンを右クリックし、[PowerShell(管理者)]コマンドを選択します。コマンドプロンプトを使用したい場合は、[スタート]メニューで[コマンドプロンプト]を検索して右クリックし、[管理者として実行]コマンドを選択します。どのコマンドライン環境を選択しても、コマンドは同じように機能します。.
権限によっては、このコマンドを実行するために実際には管理者権限が必要ない場合があります。技術的には、変更したいディレクトリに対する「属性の書き込み」権限が必要です。ほとんどの場合、これは、c:\ projectなど、ユーザーフォルダーの外側のフォルダーを編集する場合は管理者権限が必要であり、ユーザーフォルダーの内側のフォルダーを変更する場合は不要です。 c:\ users \のように名\プロジェクト.
続行する前に、実行中のLinuxソフトウェアが現在変更しようとしているディレクトリを参照していないことを確認してください。 Linuxソフトウェアがアクセスしている間は、フォルダの大文字と小文字の区別フラグを変更しないでください。現在実行中のディレクトリであっても、現在実行中のLinuxプロセスがディレクトリまたはディレクトリ内の何かを開いていると、Linuxアプリケーションはその変更を認識できず、問題が発生する可能性があります。.
フォルダの大文字と小文字を区別するには、「C:\ folder」をフォルダへのパスに置き換えて、次のコマンドを入力します。
fsutil.exeファイルsetCaseSensitiveInfo C:\ folder enable
フォルダパスにスペースが含まれる場合は、次のようにパス全体を引用符で囲みます。
fsutil.exeファイルsetCaseSensitiveInfo "C:\ my folder"
これはサブフォルダには影響しません
大文字と小文字の区別フラグは、それを適用する特定のフォルダにのみ影響します。そのフォルダのサブフォルダに自動的には継承されません.
つまり、C:\ folderという名前のフォルダがあり、その中にC:\ folder \ testおよびC:\ folder \ stuffサブフォルダがある場合は、単にC:\ folderフォルダを大文字と小文字を区別するだけではうまくいきません。その中の「test」および「stuff」サブフォルダーは大文字と小文字を区別します。適切なものを実行する必要があります しつこい
3つのフォルダすべてを大文字と小文字を区別するように別々にコマンド.
Linuxツールはデフォルトで大文字と小文字を区別するフォルダを作成します
Linux用Windowsサブシステム(Bashシェル)内で実行するLinuxツールは、大文字と小文字を区別するフラグが設定されたフォルダーを作成するようになりました。だから、あなたが使用するかどうか mkdir
Bashシェルの内部にディレクトリを作成するコマンドまたは開発ツールが自動的にそれを行います。マウントされたWindowsファイルシステムに作成した場合でも、作成されたディレクトリは自動的に大文字と小文字が区別されます。.
技術的には、これはLinux環境用のDrvFsファイルシステムが case = dir
デフォルトではフラグを立てます。の case = dir
optionは、各ディレクトリのNTFSフラグを尊重し、Linux環境内から作成されたディレクトリに大文字と小文字を区別するフラグを自動的に設定するようにLinux環境を設定します。必要に応じて、wsl.confファイルでこのオプションを変更できます。.
Linux環境からフォルダを作成する限り、それらは大文字と小文字の区別を適切に設定して作成されているので、fsutil.exeコマンドに触れる必要はありません。.
ディレクトリの大文字と小文字が区別されるかどうかを確認する方法
ディレクトリで現在大文字と小文字が区別されるかどうかを確認するには、次のコマンドを実行し、「C:\ folder」をそのフォルダへのパスに置き換えます。.
fsutil.exeファイルqueryCaseSensitiveInfo C:\ folder
ディレクトリの大文字と小文字の区別が有効になっている場合は、「directory [path]の大文字と小文字の区別属性が有効になっています」と表示されます。ディレクトリ[パス]は無効です。
ディレクトリの大文字と小文字を区別しないようにする方法
変更を元に戻して、ディレクトリの大文字と小文字を区別しないようにするには(“ Bill Gates”が意図したとおりに)、次のコマンドを実行し、“ C:\ folder”をフォルダへのパスに置き換えます。.
fsutil.exeファイルsetCaseSensitiveInfo C:\ folder disable
衝突する可能性のある名前のファイルを含むフォルダの大文字と小文字の区別を無効にしようとすると、「エラー:ディレクトリが空ではありません」というメッセージが表示されます。続行する前に、競合するファイルを削除または名前変更する必要があります。.