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 工具来实现这一点。
答案1
您无法在 Explorer 中访问这些文件夹,因为 Win32 子系统不支持区分大小写,而 Explorer 不支持 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://docs.microsoft.com/en-us/windows/wsl/release-notes#build-14361