web-dev-qa-db-ja.com

Windowsで大文字と小文字を区別するパス(Bash-on-Ubuntu-on-Windowsで作成)にアクセスするにはどうすればよいですか?

Bash-on-Ubuntu-on-Windowsは、大文字と小文字を区別するファイルパスをサポートします。これは、大文字と小文字が異なるだけの名前で2つのファイルまたはディレクトリを作成できることを意味します。ただし、これらのファイルへのアクセスに問題があります。

ランニング

bash -c "touch Magic ; mkdir magic ; echo Secret! > magic/secret"

ファイル名Magicmagicという名前のディレクトリ、およびそのディレクトリにファイル名secretを作成します。

bash -c "ls -lR"

.:
total 0
drwxrwxrwx 2 root root 0 Aug 23 10:37 magic
-rwxrwxrwx 1 root root 0 Aug 23 10:37 Magic

./magic:
total 0
-rwxrwxrwx 1 root root 8 Aug 23 10:37 secret

(デフォルトのユーザーではないため、なぜrootを取得するのかわかりませんが、それは私の質問には関係がないようです。)

Windowsエクスプローラーの表示: Windows Explorer shows file and directory

現在、bashはディレクトリ内のmagic/secretファイルに簡単にアクセスできますが、Windowsはディレクトリとファイルの両方を同じものとして扱っているようです。そのため、ディレクトリをダブルクリックすると、「ディレクトリ名が無効です」というエラーが表示されます Error dbl-clicking directory

The directory name is invalid.が出力されるので、cdの使用についても同じことが言えます。

(Bashを使用する以外に)magic/secretファイルにアクセスする方法はありますか?

部分的な回答

レジストリを変更して、プログラムでそれを行う方法を見つけました。説明 ここ 。しかし、既存のWindowsツールでそれを行う方法はないようです。

5
tmr232

Win32サブシステムが大文字と小文字の区別をサポートしておらず、エクスプローラーがPOSIXサブシステムをサポートしていないという理由だけで、エクスプローラーでこれらのフォルダーにアクセスすることはできません。

ビルド14361

ビルド14361に関する一般的なWindows情報については、Windowsブログにアクセスしてください。

問題を追跡または報告するには、Githubページにアクセスしてください。

修繕

  • Windows上のUbuntuのBashで実行する場合、DrvFsで大文字と小文字が区別されるようになりました。

    • ユーザーは/ mnt/cドライブでcase.txtとCASE.TXTを使用できます
    • 大文字と小文字の区別は、Windows上のUbuntuのBash内でのみサポートされます。 Bashの外部では、NTFSはファイルを正しく報告しますが、Windowsからのファイルとの対話で予期しない動作が発生する可能性があります。
    • 各ボリュームのルート(つまり/ mnt/c)は大文字と小文字を区別しません
    • Windowsでのこれらのファイルの処理の詳細については、 ここ を参照してください。

https://msdn.Microsoft.com/en-us/commandline/wsl/release_notes#build-14361

1
phuclv