WSL2 文件互传指南:打通 Windows 与 Linux
WSL2 环境下 Windows 与 Linux 文件互传的解决方案。文章分析了三种主要路径(mnt/c、wsl$、ext4)的特性与速度差异,涵盖大文件传输、日志导出、代码编译、配置同步、VSCode 远程编辑及 Docker 挂载等 6 种高频场景。提供了具体的命令行操作示例,包括权限修正、编码转换及自动挂载优化配置。最后通过性能实测数据对比,帮助开发者根据实际需求选择最优路径,避免常见权限和编码问题。

WSL2 环境下 Windows 与 Linux 文件互传的解决方案。文章分析了三种主要路径(mnt/c、wsl$、ext4)的特性与速度差异,涵盖大文件传输、日志导出、代码编译、配置同步、VSCode 远程编辑及 Docker 挂载等 6 种高频场景。提供了具体的命令行操作示例,包括权限修正、编码转换及自动挂载优化配置。最后通过性能实测数据对比,帮助开发者根据实际需求选择最优路径,避免常见权限和编码问题。

在 WSL2 里使用 cp /mnt/c/Users/xxx/file.txt ~/ 拷贝文件,结果中文乱码?Windows 侧把项目拖到 \\wsl$\ 里,Git 却疯狂提示 mode change 100644 → 100755?如果你也被这些问题折磨过,这篇教程一次性讲透 WSL2 的文件系统原理,并给出 6 种高频场景的实操方案。
| 路径 | 本质 | 速度 | 适用场景 |
|---|---|---|---|
/mnt/c/ | Windows 盘符挂载 | 慢(跨文件系统) | 临时读写 Windows 文件 |
\\wsl$\Ubuntu\ | 9P 网络协议 | 中等 | Windows 资源管理器直接访问 Linux |
~/(ext4.vhdx) | 原生 ext4 虚拟磁盘 | 快! | Linux 重度开发(推荐) |
⚠️ 注意:
/mnt/c/默认挂载参数不支持chmod和大小写敏感,不要直接把 Git 仓库放这。\\wsl$\路径在 Windows 程序中可能被识别为网络驱动器,某些 IDE(如 CLion)会卡顿。
按 Win+R 键打开运行窗口,输入:
\\wsl$

方案:直接拖进 ext4.vhdx
\\wsl$\Ubuntu\home\你的用户名\dataset.zip 拖进来(速度≈磁盘写入极限)。sudo chown $USER:$USER ~/dataset.zip,否则可能无权限。方案:用 cp 到 /mnt/c/,但注意编码
生成带中文的日志:
python train.py > /mnt/c/Users/你的 Win 用户名/Desktop/train.log 2>&1
如果 Windows 打开是乱码,用 iconv 转码:
iconv -f UTF-8 -t GBK ~/train.log -o /mnt/c/Users/xxx/Desktop/train_gbk.log
错误示范:
cd /mnt/c/Users/xxx/project
make
# 报错:No rule to make target '/mnt/c/.../file.c'
正确姿势:
# 把项目搬到 ext4 分区
cp -r /mnt/c/Users/xxx/project ~/project_wsl
cd ~/project_wsl && make -j$(nproc)
把 Linux 的 .vimrc 同步到 Windows 的 OneDrive:
ln -sf /mnt/c/Users/xxx/OneDrive/config/.vimrc ~/.vimrc
code .(首次会自动安装)\\wsl$\ 打开工程。files.eol 的自动转换。把 Windows 的 D:\data 挂到 Linux 的 /mnt/data:
sudo mkdir /mnt/data
sudo mount -t drvfs D: /mnt/data
# 运行容器
docker run -v /mnt/data:/workspace nvidia/cuda:11.8-base
编辑 /etc/wsl.conf(没有就新建):
[automount]
enabled = true
options = "metadata,umask=22,fmask=11"
metadata 支持 Linux 权限,umask/fmask 解决可执行文件问题。
改完重启 WSL2:
wsl --shutdown
| 操作 | 路径 | 耗时(拷贝 1GB 文件) |
|---|---|---|
| Windows→Linux | \\wsl$\ | 8.2 秒 |
| Windows→Linux | /mnt/c/ | 32 秒 |
| Linux→Windows | /mnt/c/ | 7.8 秒(反向更快,原因未知) |

🚩 结论:
- 长期项目 → 放
~/(ext4.vhdx)- 临时交换 → 用
/mnt/c/- Windows 程序编辑 → 用
\\wsl$\

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online