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

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

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

那可能是什么原因呢?

答案1

可能是启动脚本中的某些内容造成了干扰,让我们来逐步进行故障排除。

首先,让我们检查一下当您选择“在此处打开 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 上一切正常。

相关内容