【问题标题】:How to translate the wslpath /home/user/ to windows path如何将 wslpath /home/user/ 转换为 windows 路径
【发布时间】:2019-04-27 17:05:40
【问题描述】:

我使用的是windows 10的Linux子系统(windows 10 version 1803)

我可以使用命令行:

user@laptop:~$ wslpath -w /c/
C:\

但是当我尝试使用时

user@laptop:~$ wslpath -w ~
wslpath: /home/user: Result not representable

即使我使用:

user@laptop:~$ wslpath -w /home/user
wslpath: /home/user: Result not representable

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

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

我希望某些命令行可以让我返回该字符串。

【问题讨论】:

  • 这是使用 sed 命令的另一种方法。 ` 回声 "/home/user" | sed 's#/#\\#g'`。这可能对驱动器号 c/d/etc 没有帮助。
  • 这是我的 /home/ 文件夹的窗口路径:“C:\Users\winuser\AppData\Local\lxss\home”,我不仅想将 Linux 路径格式更改为 windows 格式。我需要窗口的整个路径字符串。 @RobertRanjan

标签: bash path windows-subsystem-for-linux realpath


【解决方案1】:

为 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-files/

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

在即将到来的 Windows 2020 年 5 月 10 日更新 (2004) 中,您不必记住有些晦涩的 \\wsl$\ UNC 路径 - 您只需单击文件中的 Tux(Linux penguin)图标探索者:

针对 WSL1 用户的警告:

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

请阅读这篇文章: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 性能用于发行版的本地文件系统。

【讨论】:

  • 嘿,你真的不应该假设人们想做事情的原因。我需要将 linux 路径转换为 ​​Windows 路径,以便通过 Docker for Windows 安装它们。这些文件位于 Windows 上,通常以您提到的方式访问。然而,Docker 的设计方式需要 Windows 路径。
  • 乍得。如果您确实直接进入包含 WSL (1) 发行版文件的 Windows 文件夹,那么您很可能会以损坏的文件和/或数据丢失而告终。这不是一个轻率的警告。这就是为什么在博客文章的顶部有一个大的红色横幅。这就是说,由于您现在可以通过 1809 或更高版本中的新文件系统集成访问 WSL 的文件,因此我更新了上述指南。
  • 试图将科学家变成工程师并非易事。这是我要解决的用例,也是未来的用例。越来越多的公司最终将赶上人工智能技术,并希望将数据科学家整合到产品开发团队中。感谢您最近在 Microsoft 所做的所有出色工作。他们取得了重大进展,但仍然不适合像我这样的人。不过它已经到了。
  • @乍得。恕我直言,这些 cmets 不是进行这种对话的明智场所。当您通过 7 部分回复指出某种方式时,您可能应该发布您自己的问题,和/或在 Twitter 上与我联系
  • @timo 你启用 WSL 了吗?
【解决方案2】:

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

$ wslpath -w /mnt/c/Users
C:\Users
$ wslpath -w /usr/bin
\\wsl$\Debian\usr\bin

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

【讨论】:

    猜你喜欢
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    相关资源
    最近更新 更多