跳到主要内容

WSL 与 Windows 互相访问教程


已读 0%
本篇目录
阅读设置
正文字号
18

设置仅保存在当前浏览器。

WSL 与 Windows 互相访问教程

先区分文件路径与网络服务。本文讨论文件访问;HTTP、SSH 和代理端口的互访需要另外检查网络模式、监听地址和防火墙。

一、Windows 访问 WSL 文件

在文件资源管理器的地址栏输入:

\\wsl$\Ubuntu\home\your_user

Ubuntu 和 your_user 替换为 wsl -l -v 显示的发行版名及实际 Linux 用户名,也可以使用 \\wsl.localhost\Ubuntu\...。

PowerShell 支持通过 UNC 路径访问:

Set-Location -LiteralPath "\\wsl$\Ubuntu\home\your_user"
Get-ChildItem

CMD 的 cd 不支持把 UNC 路径直接作为当前目录,可以临时映射:

pushd "\\wsl$\Ubuntu\home\your_user"
dir
popd

访问权限仍受 WSL 的 Linux 用户和文件权限约束,不是“自动挂载后就没有权限问题”。

不从 LocalState / rootfs 直接编辑

旧版 WSL 1 的存储布局与 WSL 2 不同。WSL 2 的 Linux 文件系统通常保存在虚拟磁盘中,商店安装与导入实例的位置也不相同。不要把 LocalState\rootfs 写成所有 WSL 的访问入口,更不要用普通 Windows 工具直接修改其内部存储。

日常通过 \\wsl$、\\wsl.localhost 或下面的 explorer.exe . 访问。

二、WSL 访问 Windows 文件

默认 DrvFs 自动挂载下,C:\ 通常对应 /mnt/c,D:\ 对应 /mnt/d;这些位置可以被 WSL 挂载配置改变。

在 WSL 的 Bash 中:

cd "/mnt/c/Users/YourName/Documents"
ls

把路径替换为实际存在的 Windows 用户目录,包含空格时保留引号。

复制测试文件时先确认源文件和目标目录存在:

mkdir -p "$HOME/shared-folder"
cp -i "/mnt/c/Users/YourName/Documents/example.txt" "$HOME/shared-folder/"

cp -i 会在覆盖同名文件前询问;它不会自动同步两份文件的后续修改。Windows 文件在 Linux 中显示的权限也不等同于普通 Linux 文件系统的权限。

三、用软链接简化常用路径

在 WSL 中创建一个新的、不与现有文件同名的链接:

ln -s "/mnt/c/Users/YourName/Documents" "$HOME/windows-documents"
cd "$HOME/windows-documents"

软链接只是路径入口,不会复制内容,也不会绕过原目录权限。

反过来,要让 Windows 访问 Linux 目录,直接使用 UNC 路径即可,不需要另行配置 SMB 共享。

四、打开当前 WSL 目录

在 WSL 终端运行:

explorer.exe .

它通过 Windows 文件访问入口打开当前目录,需要 WSL 的 Windows 互操作功能可用。

主要由 Linux 工具构建的项目通常放在 WSL 的 Linux 文件系统内;主要由 Windows 工具操作的文件可放在 Windows 文件系统。跨系统访问同一文件时,注意大小写、换行、权限和同时写入,不把共享访问当作自动备份或同步。

参考:微软:跨 Windows / Linux 文件系统工作。


文章作者: 0xdadream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xdadream !
赏
评论

评论将在接近此处时加载,也可点击立即加载。

  目录