WIndows 10上的cygwin64:恼人的弹出窗口;错误系统找不到指定的文件";

WIndows 10上的cygwin64:恼人的弹出窗口;错误系统找不到指定的文件";,cygwin,Cygwin,我在Windows10笔记本电脑上使用cygwin64。几乎每天,当我打字时,我超大的手指和糟糕的打字技能会把键盘和/或音轨板弄坏,我会弹出这样一个错误: Error: the system cannot find the file specified C:\Users\Mark Logan\Downloads 当您以windows格式键入文件名时,此路径存在且可读,如示例中的C:\Users\Mark Logan\Downloads,反斜杠字符“\”被处理为字符转义码。这会将两个字符“\U”

我在Windows10笔记本电脑上使用cygwin64。几乎每天,当我打字时,我超大的手指和糟糕的打字技能会把键盘和/或音轨板弄坏,我会弹出这样一个错误:

Error: the system cannot find the file specified
C:\Users\Mark Logan\Downloads

当您以windows格式键入文件名时,此路径存在且可读,如示例中的
C:\Users\Mark Logan\Downloads
,反斜杠字符“\”被处理为字符转义码。这会将两个字符“\U”更改为单个“U”。对于少数字符,这两个字符将替换为新字符,例如,“\b”插入一个BEL,“\r”插入一个CR,“\n”插入一个LF,“\t”插入一个制表符

有几种方法可以让cygwin程序正确读取windows样式的文件名,例如bash shell。但请注意,有些程序不会将windows样式的文件名解释为cygwin样式的文件名

  • 用单引号括起来:
    'C:\Users\Mark Logan\Downloads'
  • 在双引号中使用转义反斜杠:
    “C:\\Users\\Mark Logan\\Downloads”
  • 使用转义反斜杠和转义空格:
    C:\\Users\\Mark\Logan\\Downloads
许多cygwin程序,包括大多数Shell,都使用readline库进行输入处理。这允许您在将输入行发送到程序之前编辑输入行。可以使用左键和右键一次前后移动一个字符,使用主键和结束键移动到输入行的开始或结束处。您可以通过键入字符在插入符号处添加字符,并使用退格键或删除键删除插入符号前后的字符。在行中的任意点按enter(或return)将编辑的行发送到程序


为了输入Windows样式的文件名以便将其解释为同一文件,文件名应输入为cygwin样式的文件名,例如,
C:\Users\Mark Logan\Downloads
as
/cygwin/Users/Mark\Logan/Downloads
“/cygwin/Users/Mark Logan/Downloads”
(转义空格,或用双引号或单引号括起来)。可以使用cygpath程序执行此转换(请参阅cygpath--help).

您在哪里指定了这个
C:\Users\Mark Logan\Downloads
?cygwin程序将使用类似
/cygdrive/C/Users/Mark\Logan/Downloads
的东西,包括目录名中
空间的\escape。这是一个好问题。我查看了cygwin选项菜单,没有看到任何路径。我认为这是一个好问题它是由某个意外的键序列生成的,可能是复制/粘贴。它似乎更像是Windows设置或程序。我怀疑它是否来自cygwin设置