因此,我在 Windows 端运行一个应用程序,并希望该应用程序访问 Linux 文件。我在那里看到所有 Linux 文件:
\\wsl.localhost\Ubuntu
但 Windows 应用程序将对任何文件使用任意大小写,因为它被编程为不区分大小写。它从未想过它会在区分大小写的文件系统上运行。
因此,我的 Windows 应用程序将找到文件\\wsl.localhost\Ubuntu\FooBar.txt
,然后尝试访问文件\\wsl.localhost\Ubuntu\FOOBAR.TXT
,然后想知道为什么它找不到它正在寻找的文件。
这里的解决方案不起作用:调整区分大小写。而且,无论是谁写的,都没有明确说明哪一方试图访问每个解决方案的哪一方的文件。我尝试了在 wsl.conf 中设置某些内容然后重新启动 WSL 的方法,但它不允许我\\wsl.localhost\Ubuntu\FooBar.txt
通过键入来访问\\wsl.localhost\Ubuntu\FOOBAR.TXT
。
答案1
这篇文章讨论了使 NTFS 不区分大小写。你要求的恰恰相反。不幸的是,虽然 Linux 上的 Ext4 也支持不区分大小写,WSL 中未启用此功能眼下。
一种替代方法是使用传统的 SMB 文件共享1,因为即使文件系统不支持不区分大小写,Linux 上的 Samba SMB 服务器也内部支持不区分大小写。
1(\\wsl.localhost
使用 9P,而不是 SMB。)
答案2
WSL 不支持 不区分大小写的文件名。
我能看到的唯一可能性是将两个名称赋予同一个文件,通过在 Ubuntu 文件夹中创建一个名为 的FOOBAR.TXT
指向的符号链接FooBar.txt
,这样两个名称都存在并引用同一个文件。