WSL连接Docker时,如何切换至Windows系统中的指定目录?
解决WSL中cd到Windows带空格路径的错误问题
问题原因
你遇到的-bash: cd: too many arguments错误,本质是路径里的空格被bash当成了多个参数的分隔符,同时你直接用Windows风格的E:/路径在WSL里不生效——WSL会把Windows磁盘挂载在/mnt/目录下,必须用Linux风格的路径格式。
分步解决方法
1. 转换Windows路径为WSL格式
Windows的E盘在WSL里对应的根路径是/mnt/e/,所以你原来的E:/Users/Name/Desktop/...要改成/mnt/e/Users/Name/Desktop/...,路径分隔符统一用/(Linux标准)。
2. 处理路径中的空格(三选一即可)
方法一:用引号包裹整个路径
把包含空格的完整路径用双引号或单引号包起来,bash就会把整个内容当成一个参数:
cd "/mnt/e/Users/Name/Desktop/folder one/folder two/目标文件夹"
方法二:给空格加转义符\
在每个空格前面加反斜杠\,告诉bash这个空格是路径的一部分,不是参数分隔符:
cd /mnt/e/Users/Name/Desktop/folder\ one/folder\ two/目标文件夹
方法三:用Tab键自动补全(最省心)
输入路径的前半部分,比如先输入:
cd /mnt/e/Users/Name/Desktop/f
然后按键盘上的Tab键,bash会自动帮你补全路径,同时自动处理空格的转义,完全不用手动输入转义符或引号,新手强烈推荐这个方法。
额外提示
- WSL中所有Windows磁盘都挂载在
/mnt目录下,比如C盘对应/mnt/c,D盘对应/mnt/d,盘符必须小写。 - 如果你经常需要访问这个Windows文件夹,可以用
ln -s命令创建软链接,之后快速跳转:
之后直接输入ln -s "/mnt/e/Users/Name/Desktop/folder one/folder two/目标文件夹" ~/my-work-foldercd ~/my-work-folder就能进入目标目录。
内容的提问来源于stack exchange,提问作者ineedhelp
相关产品推荐
相关产品推荐

