cygwin cygdrive 路径和 Windows 命令提示符

Mat*_*ker 6 windows cygwin scp

我遇到了一个奇怪的问题,cygwin 在安装之间表现不一致,特别是 scp。在这两种情况下,我的 Windows 路径中都有 c:\cygwin\bin 。然而,当我从Windows 命令提示符运行以下命令时,两个安装之间得到的结果截然不同:

scp /cygdrive/c/something.txt User@server:${HOME}/something.txt
Run Code Online (Sandbox Code Playgroud)

在一台机器上它可以很好地传输文件,但在另一台机器上我收到错误:

/cygdrive/c/something.txt: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但是,如果我在出现错误的机器上以这种方式执行命令,它会很好地传输:

scp /c/something.txt User@server:${HOME}/something.txt
Run Code Online (Sandbox Code Playgroud)

为什么会有这些差异?我需要在 cygwin 中配置一些东西才能使其与 /cygdrive/c 一起工作吗?

更新:这里有一些更有趣的事情。如果我ls /c从 Windows 命令提示符执行此操作,我会得到您所期望的内容,如 C: 中所有内容的列表。然而,ls /cygdrive/c说它不存在。从 cygwin bash 运行这些命令会产生完全相反的行为。

Amr*_*mro 5

正确的方法是使用mount命令:

mount --change-cygdrive-prefix /c
Run Code Online (Sandbox Code Playgroud)

或者根据您的情况,恢复默认/cygdrive前缀...