如何在 Babun/Cygwin 上将 Windows 路径(带反斜杠)转换为 Unix 格式

Vit*_*uel 8 windows cygwin path posix

我正在使用 Windows 并编写 shell 脚本以在 Babun(一个 POSIX api)上运行。

我需要从环境变量 $USERPROFILE 中读取路径,并将其转换为 unix 样式(将 \ 替换为 /,将 c:\ 替换为 /c/),以便稍后在脚本中使用它。

问题是每当我回显 $USERPROFILE 的内容时,反斜杠都被解释为转义字符,并且我得到了意想不到的结果(字母“随机”变成了特殊字符,如 \n、\f 等)。例如,我无法将其回显到 sed 中。

Ant*_*gan 11

Cygwincygpath为转换 Unix 和 Windows 格式路径提供了非常有用的实用程序。来自Cygwin 用户指南

cygpath程序是一个实用程序,可将 Windows 本地文件名转换为 Cygwin POSIX 样式的路径名,反之亦然。当 Cygwin 程序需要将文件名传递给本机 Windows 程序或期望从本机 Windows 程序获取文件名时,可以使用它。或者,cygpath可以以任一格式输出有关重要系统目录位置的信息。

它可以与 Windows 或 DOS 样式的格式路径相互转换,例如打印 Windows 路径的 Unix 格式:

$ cygpath -u "$USERPROFILE"
/cygdrive/c/Users/anthony
Run Code Online (Sandbox Code Playgroud)

有关完整详细信息和基本使用信息,请参阅Cygwin 用户指南cygpath --help