如何将当前的Cygwin目录转换为Windows格式

5
为了显示当前目录,我使用$pwd在Cygwin中运行良好。
这篇文档解释了如何将Cygwin目录转换为Windows格式。但是为什么$cygpath -w pwd$cygpath -w $pwd无法工作?
在这种情况下,我得到的结果如下: enter image description here

1
“Is not working”不是一个错误描述。请解释期望的行为和观察到的行为。 - IInspectable
@IInspectable 刚刚更新了详细信息。 - Sergino
“解释预期行为” - 你跳过了那部分。此外,当可以构建具有相同内容的文本表示时,请不要添加屏幕截图。屏幕截图无法进行文本搜索。 - IInspectable
1
尝试使用以下命令:cygpath -w "\pwd`"cygpath -w "$(pwd)"cygpath -w "$PWD"`。 - anishsane
@anishsane 所有三种情况都有效。请将其发布为答案,我会接受。 - Sergino
3个回答

10

尝试以下任何版本:

cygpath -w "$(pwd)"
cygpath -w "$PWD"
cygpath -w "`pwd`"

请问您能否解释一下为什么 $cygpath -w pwd$cygpath -w $pwd 都无法工作,但是如果我运行 $pwd,它会显示当前目录? - Sergino
1
如何将Bash变量设置为命令输出的值 - anishsane
1
cygpath -w $(pwd) 对我有效,带引号的版本不行。 - Stephen

1
“为什么`$cygpath -w pwd`和`$cygpath -w $pwd`不起作用?”Git 2.15.x/2.16 (2018年第一季度)指出了这个问题,因为在Cygwin构建中,UNC路径与Mingw构建一样重要,现在也被测试了。请参见提交f21d60b(由Adam Dinwoodie (me-and)于2017年10月31日提交)
(由Junio C Hamano -- gitster --提交b169d18中合并,2017年11月9日)

t5580: 增加Cygwin支持

t5580 测试Git使用Windows UNC路径的情况。
Cygwin支持UNC路径,但只能使用斜杠而非反斜杠,因此在Cygwin和MinGW上运行兼容性测试。

唯一的复杂之处在于Cygwin的 pwd 返回*nix风格的路径,这不适合计算到当前目录的UNC路径。 相反,应该使用Cygwin的cygpath实用工具来获取Windows风格的路径。

因此,现在测试使用:

alias winpwd='cygpath -aw .'
BACKSLASHED="$(winpwd | tr / \\\\)" 

1

我不想记住cygpath - 所以我创建了一个pwd的包装器并将其添加到我的.bashrc文件中。

pwd()
{
    if [[ $1 == "-W" ]] ; then 
        cygpath -aw .; 
    else 
        wpwd="-W, --winpath\t  Gives you actual Windoze path"
        err_msg=$(/usr/bin/pwd $* 2>&1);
        let "v = $?"
        if [ $v -eq 1 ] ;  then # have error
            echo "${err_msg}" | sed 's/.*pwd --help.*//' ;
            /usr/bin/pwd --help | sed "s|\(.*  -L, --logi.*\)|  $wpwd\n\1|" 
        else 
            echo "${err_msg}"
        fi
    fi
}

`


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接