【问题标题】:How to convert a DOS-style path to Unix-style path under MSYS using simple commands?如何使用简单的命令在 MSYS 下将 DOS 风格的路径转换为 ​​Unix 风格的路径?
【发布时间】:2015-07-18 08:24:49
【问题描述】:

例如,如果我有这个作为输入:

F:\my\path\to\File.TXT

我想把它作为输出

/f/my/path/to/File.TXT

即使路径不存在,这也应该可以工作,所以我不能简单地调用

cd $P && pwd -P

编辑:我想避免使用 sedawk,因为有更简单的命令可以实现这一点,例如 tr 和 Bash内置插件。

【问题讨论】:

标签: bash path dos msys


【解决方案1】:

这 2 个 Bash 函数会有所帮助:

canondirslashes() { local p; p="$(echo $1 | tr \\ /)" && echo ${p%/}; }

canonpath() { canondirslashes "$( test "${1:1:1}" != : && echo $1 || echo $(echo /${1::1} | tr [A-Z] [a-z])${1:2} )" ; }

这是一个例子:

bash-3.1$ P=F:\\my\\path\\to\\File.TXT

bash-3.1$ echo $P
F:\my\path\to\File.TXT

bash-3.1$ canonpath $P
/f/my/path/to/File.TXT

【讨论】:

    猜你喜欢
    • 2010-10-13
    • 2014-08-10
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    相关资源
    最近更新 更多