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 文件系统。跨系统访问同一文件时,注意大小写、换行、权限和同时写入,不把共享访问当作自动备份或同步。
评论将在接近此处时加载,也可点击立即加载。