piapia123
zh

路径格式转换

网络

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

同一个位置在四套写法里长得都不一样,而每一套都有自己的地盘:`C:\Users\me\proj` 给 PowerShell 与资源管理器,`C:/Users/me/proj` 给 Node 与 Python,`/mnt/c/Users/me/proj` 给 WSL,`/c/Users/me/proj` 给 Git Bash。 这里一次把四种都给出来,而不是让你先选一个方向 —— 因为最容易混的那两个粘错不报错:`/mnt/c` 是 WSL 的挂载约定,Git Bash 不认;而 Git Bash 的 `/c` 在 WSL 里是根目录下一个叫 `c` 的真实目录。互相粘错的后果是在另一个位置建出一个同名文件夹,而不是一句错误信息。 ⚠️ 末尾的斜杠原样保留,包括 Windows 写法里的反斜杠:`node scripts/` 与 `node scripts` 在某些命令里是两回事。

功能

  • 一次给出四种写法:Windows(反斜杠)、通用(正斜杠)、WSL(/mnt/c)、Git Bash(/c)
  • 认带盘符、`/mnt/c`、`/c`、UNC 网络路径(\\server\share)与相对路径,并说明判成了哪一类
  • ⚠️ 末尾斜杠原样保留,且按目标写法自己的分隔符补回(Windows 形态补反斜杠,不会输出 C:\a\b/)
  • UNC 与 Unix 绝对路径没有对应写法时给一句人话,而不是编一个出来
  • 支持多行,一次转一批,按行分组
  • 可选把重复的分隔符压成一个
  • 不做「反斜杠全替换成正斜杠」:在 Linux 上反斜杠是合法文件名字符,逐字符替换会指向另一个路径

使用方法

  1. 把路径粘进去,一行一条
  2. 需要的话打开「压掉重复分隔符」
  3. 结果里逐行给出四种写法与判断依据

常见问题

/mnt/c 和 /c 有什么区别?
它们是两个不同的位置。`/mnt/c` 是 WSL 的挂载约定,指向 Windows 的 C 盘;Git Bash 不认这个写法。`/c` 是 Git Bash(MSYS2)的写法,同样指向 C 盘;而在 WSL 里,`/c` 是根目录下一个真实存在的、叫 `c` 的普通目录。把其中一个粘到另一个环境里不会报错,只会在错误的位置建出文件夹 —— 所以本工具两种都输出,让你自己选对的那个。
为什么末尾的斜杠不顺手去掉?
因为它会改变命令的含义。`cp -r src/ dest` 与 `cp -r src dest` 在目录不存在时的行为不一样,`node scripts/` 也让某些工具按目录处理。所以本工具原样保留它,而且按目标写法自己的分隔符补回 —— Windows 形态补反斜杠,其余补正斜杠。
为什么 UNC 路径没有 Unix 写法?
`\\server\share\dir` 里的 server 是网络上的主机名,它不映射到本地的任何挂载点。WSL 与 Git Bash 各自可以用不同的方式挂载网络共享,但没有一个通用的、由路径本身就能推出来的写法。所以这里给 `(无对应写法)`,而不是编一个看起来合理的路径 —— 编出来的那个会让人以为可以直接用。
为什么不做「反斜杠全换成正斜杠」?
因为在 Linux 上反斜杠是合法的文件名字符:一个叫 `a\b` 的文件是真实存在的。把它的反斜杠换成正斜杠会指向另一个(不存在的)路径,而且不会报错。所以这里的判断依据是整条路径的形态(有没有盘符、有没有 `/mnt/`),不是逐字符替换。

相关工具