Bash-on-Ubuntu-on-Windows поддерживает регистрозависимые пути к файлам. Это означает, что я могу создать два файла или каталоги, имена которых отличаются только заглавными буквами. У меня проблемы с доступом к этим файлам.
Бег
bash -c "touch Magic ; mkdir magic ; echo Secret! > magic/secret"
Создает имена файлов Magic
, каталог с именем magic
и 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
, поскольку он не является пользователем по умолчанию, но это не имеет отношения к моему вопросу.)
Теперь, когда bash
может легко получить доступ к magic/secret
файлу в каталоге, Windows, похоже, рассматривает и каталог, и файл как одно и то же. Поэтому, дважды щелкнув каталог, я получаю сообщение об ошибке "имя каталога недействительно".
То же самое касается использования cd
, так как я получаю The directory name is invalid.
распечатанный.
Есть ли способ (кроме использования Bash) для доступа к magic/secret
файлу?
Частичный ответ
Я нашел способ сделать это программно, с некоторыми изменениями реестра. Описано здесь. Но кажется, что нет никакого способа сделать это с существующим инструментарием Windows.