使用 cygwin 导航到目录 "C/Program Files (x86)" 时出现问题?
Issue while navigating to a directory "C/Program Files (x86)" with cygwin?
我正在尝试在 cygwin 中导航到下面的路径,
C/Program Files (x86)/temp/lfc/utilities
但不幸的是,它显示以下错误
$ cd C/Program Files (x86)/temp/lfc/utilities
bash: syntax error near unexpected token `('
你能告诉我这里有什么问题吗..
命令:
cd C/Program Files (x86)/temp/lfc/utilities
正在尝试使用 三个 个参数而不是正确的参数调用 cd
:
- C/Program
- 文件
- (x86)/temp/lfc/utilities
这些参数中的第三个包含导致
bash
一些悲伤的字符 - 它们实际上被定义为元字符,并且根据 bash
doco:
Each of the metacharacters listed above under DEFINITIONS has special meaning to the shell and must be quoted if it is to represent itself.
只需用引号将所有内容括起来,例如:
cd '/cygdrive/C/Program Files (x86)/temp/lfc/utilities'
您会注意到我还为它添加了 CygWin cygdrive
安装点作为前缀。我相当确定仍然需要它,至少从我几个月前安装的版本来看是这样。
Cygwin 使用 POSIX 路径命名法。要轻松地将 Windows 路径转换为 Cygwin 路径,您可以使用 cygpath
工具:
$ cygpath 'C:\Program Files\foo'
/cygdrive/c/Program Files/foo
此工具还可以将 POSIX 路径转换为 Windows:
$ cygpath -w '/cygdrive/c/Program Files/foo'
C:\Program Files\foo
第三种解决方案是 drag and drop 文件或文件夹从 Windows 资源管理器直接进入您的 mintty 终端。你会把你的 Windows 路径直接转换成 Cygwin 的格式。
您也可以像这样使用 PROGRA~1
、PROGRA~2
和 PROGRA~3
:
cd /cygdrive/c/PROGRA~1
等同于 cd
/cygdrive/c/Programmes
cd /cygdrive/c/PROGRA~2
等同于 cd
/cygdrive/c/Program\ Files\ \(x86\)
cd /cygdrive/c/PROGRA~3
等同于 cd
/cygdrive/c/ProgramData
您可以直接使用 windows 路径:
cd $(cygpath -u "C:\Program Files (x86)\temp\lfc\utilities")
这对环境变量很有用,例如:
cd $(cygpath -u "$USERPROFILE")/Downloads
cd "$(cygpath -u "$PROGRAMFILES")/Program Name"
上了解更多关于cygpath的信息
我正在尝试在 cygwin 中导航到下面的路径,
C/Program Files (x86)/temp/lfc/utilities
但不幸的是,它显示以下错误
$ cd C/Program Files (x86)/temp/lfc/utilities
bash: syntax error near unexpected token `('
你能告诉我这里有什么问题吗..
命令:
cd C/Program Files (x86)/temp/lfc/utilities
正在尝试使用 三个 个参数而不是正确的参数调用 cd
:
- C/Program
- 文件
- (x86)/temp/lfc/utilities
这些参数中的第三个包含导致
bash
一些悲伤的字符 - 它们实际上被定义为元字符,并且根据bash
doco:
Each of the metacharacters listed above under DEFINITIONS has special meaning to the shell and must be quoted if it is to represent itself.
只需用引号将所有内容括起来,例如:
cd '/cygdrive/C/Program Files (x86)/temp/lfc/utilities'
您会注意到我还为它添加了 CygWin cygdrive
安装点作为前缀。我相当确定仍然需要它,至少从我几个月前安装的版本来看是这样。
Cygwin 使用 POSIX 路径命名法。要轻松地将 Windows 路径转换为 Cygwin 路径,您可以使用 cygpath
工具:
$ cygpath 'C:\Program Files\foo'
/cygdrive/c/Program Files/foo
此工具还可以将 POSIX 路径转换为 Windows:
$ cygpath -w '/cygdrive/c/Program Files/foo'
C:\Program Files\foo
第三种解决方案是 drag and drop 文件或文件夹从 Windows 资源管理器直接进入您的 mintty 终端。你会把你的 Windows 路径直接转换成 Cygwin 的格式。
您也可以像这样使用 PROGRA~1
、PROGRA~2
和 PROGRA~3
:
cd /cygdrive/c/PROGRA~1
等同于cd /cygdrive/c/Programmes
cd /cygdrive/c/PROGRA~2
等同于cd /cygdrive/c/Program\ Files\ \(x86\)
cd /cygdrive/c/PROGRA~3
等同于cd /cygdrive/c/ProgramData
您可以直接使用 windows 路径:
cd $(cygpath -u "C:\Program Files (x86)\temp\lfc\utilities")
这对环境变量很有用,例如:
cd $(cygpath -u "$USERPROFILE")/Downloads
cd "$(cygpath -u "$PROGRAMFILES")/Program Name"
上了解更多关于cygpath的信息