WSL“在此处打开 Linux shell”未在当前目录中打开

Ami*_*hwa 5 windows-subsystem-for-linux wsl2

如果我右键单击按住 Shift 键的文件夹,它会在此处显示打开的 Linux shell。
但是,如果我在D:驱动器中,无论我在哪个文件夹中,它总是会打开从 开始的 Linux shell /mnt/d

原因可能是什么?

Not*_*1ds 3

启动脚本中的某些内容可能会产生干扰,但让我们逐步完成故障排除。

首先,让我们检查一下当您选择“在此处打开 Linux shell”时 Windows 使用的命令。在 PowerShell 中:

(Get-ItemProperty -name "(default)" -LiteralPath Registry::HKEY_CLASSES_ROOT\Directory\shell\WSL\command).'(default)'

结果应该是wsl.exe --cd "%V",我猜也是。如果没有,您可以通过注册表编辑来修复该问题。

但我们也可以从 PowerShell 尝试一下该命令:

wsl.exe --cd "D:\some directory"(显然,某些目录被替换为驱动器上存在的目录)。

我还猜测这会给您带来与右键单击相同的结果 - 它最终会出现在 D:\ 而不是所需的目录中。但如果它确实有效,那么我们需要进一步调查为什么右键单击“打开方式”命令存在差异。

现在,让我们看看是否可以通过 CLI使其工作。尝试:

wsl.exe --cd "D:\some directory" -e bash --noprofile --norc

我希望这对你有用。这将表明问题出在您的.profile.bashrc(或另一个启动脚本)中。

如果是这样,请查看您是否可以跟踪您所做的任何可能影响cd. 该更改也可能是由某些安装人员进行的。或者甚至可能某些发行版的股票启动脚本存在问题。你没有提到你正在使用哪个发行版,但我在 Ubuntu 20.04 上一切正常。