在 Windows 里也可以访问 Linux 子系统文件了

发布于 2019-02-21  323 次阅读


下一个Windows更新版带来了更好的Linux集成机制
Windows 10 April 2019更新版有许多改进之处,尤其是Windows Subsystem for Linux新增这项功能:让用户可以直接从Windows安全地访问Linux文件。
Windows Subsystem for Linux比较烦人的地方之一,很难从Windows访问Linux文件。虽说有办法可以做到这点,但很可能会破坏文件。用微软的话来说:“在任何情况下,请勿使用Windows应用程序、工具、脚本或控制台等机制,访问、创建及/或修改发行版的文件系统中的文件。”
在即将推出的Windows April 2019更新版(又叫Windows 10 19H1)中,这个Linux文件问题最终将得到解决。
据致力于开发Windows Subsystem for Linux(WSL)的微软编程经理Craig Loewen声称:“下一个Windows更新版即将推出,我们为它增添了令人兴奋的WSL更新!这包括从Windows访问Linux文件系统,还对如何在命令行中管理和配置发行版作了改进。”
有了这个最新的更新版,你就能够“从Windows轻松访问Linux发行版中的所有文件。”其工作原理是,在Linux实例中运行9P协议文件服务器,这是一种分布式文件网络协议。在WSL中,它使你能够在使用Linux文件和文件系统的同时,支持其元数据和权限。 Windows文件程序充当服务器的客户端。这些使用AF_Unix套接字相互联系。Linux使用AF_Unix在进程之间进行联系。
如果技术细节让你直挠头皮,别担心。从Windows访问Linux文件很容易。
比如说,想使用文件资源管理器,开始运行Linux,确保当前文件夹是你的Linux主目录,然后输入“Explorer”。资源管理器启动后,你就已准备就绪。你还可以针对Linux文件使用大多数Windows文件命令。
只要访问\wsl$\,你就可以直接从Windows寻找发行版的文件,其中是运行中的发行版的名称。
如果Linux未运行,你还是无法访问WSL文件。这项功能会出现在晚些发布的Windows 10版本中。
还有其他问题也应该留意。首先,由于你使用网络协议访问本地Linux文件,访问网络资源的所有平常规则仍适用,比如说CMD cd \wsl$\Ubuntu\home命令用不了,因为CMD不支持UNC路径作为当前目录。你也无法安全地访问AppData文件夹中的Linux文件。如果你试图这么做,并绕过9P服务器,很有可能损坏文件。的确,你有可能破坏Linux实例。
虽然文件方面的改进是最大的改进,但还有其他重要的新命令行功能。这包括能够以不同用户的身份运行命令、终止运行中的发行版,以及导入导出不同的发行版。
说到最后一项新功能,你可以导出当前发行版的tar文件。有了这个,你随后可以与其他人共享你的发行版设置。对方随后可以导入tar文件,那样他们就能运行你定制发行版的自定义实例。
WSL一直很有用。有了这个最新版,它将比以往来得更方便。


烟雨如花