WSL 在 Ubuntu 的 Windows 中找到我的用户文件夹

WSL Find my user folder in Windows from Ubuntu

假设我在 Windows 中的用户名是“John”(C:\Users\John") 我在 WSL Ubuntu 中的用户名可能是“john”(/home/john)。我说可能是因为我认为 WSL 让你选择一个名字,但我总是会选择与我的 Windows 帐户相同的名字,所以这对我来说不是问题。

我想以编程方式从 WSL 内部找到 Windows 文件夹。所以我知道 Windows 中的用户文件夹位于 /mnt/c/Users 并且我知道我的 WSL 名称是 john,但我不知道 Windows 名称是否是 johnJohnJOHN 等。 Linux 在区分大小写方面是严格的(这是我认为微软为未来做出的一个明智决定的一个领域 - 非常严格关于区分大小写将在未来几十年内仍然是一个麻烦)所以我不能只说 /mnt/c/users/john 因为如果名称不是 exactly john 就会失败区分大小写。

有没有一种方法可以让我寻找 /mnt/c/users/john 并指示 Linux 找到任何匹配类似内容的路径,无论使用哪种情况 ? Windows / PowerShell 方式的绝妙部分是默认情况下不区分大小写,并且仍然可以在需要时打开区分大小写。我明白他们为什么在早期这样做,但我从来没有 曾经 见过允许 stuffStuff、[=24= 这样的目录的情况], stUff 所有这些都能够与不同的对象共存于同一位置甚至具有价值(在现实世界中 - 严格区分大小写已经过时了)。

尝试以下操作:

find /mnt/c/Users -maxdepth 1 -type d -regextype posix-extended -regex '/mnt/c/Users/([Jj][Oo][Hh][nN])'

使用查找和搜索大写或小写组合的正则表达式。

也可以使用 -iregex 来完成,它表示不区分大小写的正则表达式搜索:

find /mnt/c/Users -maxdepth 1 -type d -regextype posix-extended -iregex '/mnt/c/Users/john'