GitBash:如何传递以斜杠 / 开头的参数而不将其视为目录?

GitBash: How can I pass an argument that starts with a slash / without it seen as a directory?

在 Windows10 使用 Git Bash...

我正在使用 aws cli 从 ssm 获取参数。名称参数以“/”开头。 bash 将其处理为目录名称并导致错误。 (命令在 CentOS 中有效。它在 PowerShell 中有效。我想留在里面 Git Bash。)

aws ssm get-parameters --names /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2

回复:

{
    "Parameters": [],
    "InvalidParameters": [
        "C:/Program Files/Git/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2"
    ]
}

我试过引用和转义...

... "/aws/..."
... '/aws/...'
... \/aws/...
... \/aws\/...
... \/aws/...
... \/aws\...

我试过输入一个变量,但结果是一样的。

我试过关闭 globbing。 (我验证了“*”不再扩展,但我仍然有同样的问题。)

set -f

我找不到让命令在 GitBash 中工作的方法。

您知道解决方案吗?

试试这个:

MSYS_NO_PATHCONV=1 aws ssm ...

如果这不起作用,或导致其他问题,请尝试

aws ssm ... //aws\service...

这是通过加倍替换第一个正斜杠并将所有剩余的正斜杠替换为两个反斜杠。