W

WSL下如何拷贝其他盘符下的文件

Captain 杂类Linux 2022-03-22

WSL 会自动将 Windows 所有已挂载盘符映射到 /mnt/<盘符小写> 目录,直接通过 cp 命令即可跨盘符拷贝。

操作步骤(在 WSL 终端内执行)
‌确认目标盘符路径‌
D 盘 → /mnt/d
E 盘 → /mnt/e(依此类推;若盘符未自动挂载,需先在 Windows 磁盘管理中分配盘符或手动 sudo mount -t drvfs X: /mnt/x)
‌执行拷贝命令‌

# 复制单个文件
cp /mnt/d/source/file.txt ~/target/

# 递归复制整个文件夹(含子目录)
cp -r /mnt/e/projects/myapp ~/workspace/

# 需写入系统目录(如 /usr/local)时加 sudo
sudo cp -r /mnt/d/tools /usr/local/

注意事项
路径格式‌:必须用 Linux 正斜杠 /,盘符转小写(如 D: → /mnt/d)。
权限问题‌:访问 Program Files、AppData 等受保护目录可能报 Permission denied,可尝试:
临时以 root 运行:sudo cp...
或修改挂载选项(编辑 /etc/wsl.conf 添加 [automount] options = "metadata,uid=1000,gid=1000" 后执行 wsl --shutdown 重启)。
中文/空格路径‌:用引号包裹或转义空格,例如:

cp "/mnt/d/我的文档/file with space.txt" ~/

替代方案‌(适合大批量/可视化操作):
Windows 资源管理器地址栏输入 \wsl$\Ubuntu\home\<用户名> 拖拽文件;
PowerShell 中:wsl cp "C:\path\to\file" /home/user/

注意
频繁读写建议将文件先拷贝至 WSL 原生文件系统(如 ~ 或 /home),避免长期在 /mnt/ 下操作导致 I/O 性能下降。

PREV:acme.sh本地IP一键证书申请脚本
NEXT:友华WR330/WR1200js刷Mikrotik ROS RB750GR3