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


8

我正在使用Windows并编写Shell脚本以在Babun(POSIX API)上运行。

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

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

Answers:


11

Cygwin提供了cygpath用于转换Unix和Windows格式路径的非常有用的实用程序。从Cygwin用户指南

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

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

$ cygpath -u "$USERPROFILE"
/cygdrive/c/Users/anthony

有关完整的详细信息和基本用法信息,请参见《Cygwin用户指南》cygpath --help

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.