如何将 wslpath /home/user/ 转换为 windows 路径

use*_*909 3 bash path realpath windows-subsystem-for-linux

我使用 Windows 10 的 Linux 子系统(Windows 10 版本 1803)

我可以使用命令行:

user@laptop:~$ wslpath -w /c/
C:\
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用

user@laptop:~$ wslpath -w ~
wslpath: /home/user: Result not representable
Run Code Online (Sandbox Code Playgroud)

即使我使用:

user@laptop:~$ wslpath -w /home/user
wslpath: /home/user: Result not representable
Run Code Online (Sandbox Code Playgroud)

为什么?如何将 /home/user 转换为 windows 路径?

我在 Windows 中的主文件夹路径是 C:\Users\winuser\AppData\Local\lxss\home

我希望一些命令行可以让我返回那个字符串。

Sam*_*uel 23

要将 WSL Linux 路径转换为 ​​Windows 路径,请使用wlspath -w. 例如:

$ wslpath -w /mnt/c/Users
C:\Users
$ wslpath -w /usr/bin
\\wsl$\Debian\usr\bin
Run Code Online (Sandbox Code Playgroud)

(是的,答案就在问题中,但有些人,比如我,会直接跳到答案而不阅读问题。)OP 报告的问题在 WSL2 中不存在。


Ric*_*ner 10

针对 Windows 10 1809 或更高版本用户的更新指南:

在 Windows 10 1809 中,我们(最终)提供了文件系统集成,允许您通过\\wsl$UNC 路径从 Windows 访问 WSL 发行版中的文件:

在此处输入图片说明

如果您对其工作原理感兴趣,请访问此博客文章:https : //devblogs.microsoft.com/commandline/a-deep-dive-into-how-wsl-allows-windows-to-access -linux-文件/

这现在允许wslpath为您的发行版文件系统中的文件提供 Windows 可访问的路径:

在此处输入图片说明

在即将发布的 2020 年 5 月 10 日 Windows 更新(2004 年)中,您无需记住有些晦涩的\\wsl$\UNC 路径——只需单击文件资源管理器中的 Tux(Linux penguin)图标即可:

在此处输入图片说明

WSL1 用户警告:

不要试图%localappdata%\lxss\...从 Windows 探索包含 WSL1 Linux 文件的文件夹 - 有龙!

请阅读这篇文章:https : //blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

该指南没有,也不会改变,但随着时间的推移它会变得不那么重要:特别是,WSL2 不使用%localappdata%\lxss- 而是将您的 linux 文件存储在 EXT4 格式的 VHDX 文件中,为发行版的本地文件系统提供接近本机的 IO 性能。

  • @乍得。恕我直言,这些评论不是进行此类对话的明智场所。当您通过 7 部分回复指出某种方式时,您可能应该发布您自己的问题,和/或在 Twitter 上与我联系 (3认同)
  • 乍得。如果您直接进入包含 WSL (1) 发行版文件的 Windows 文件夹,很可能最终会出现文件损坏和/或数据丢失的情况。这并不是一个无意义的警告。这就是为什么博客文章的顶部有一个红色的大横幅。也就是说,由于您现在可以通过 1809 或更高版本的新文件系统集成访问 WSL 的文件,因此我更新了上面的指南。 (2认同)