Gui*_*ume 28 bash configuration cygwin path
我想在我的PATH中添加一些dirs.不幸的是,这些目录位于包含空间的Windows路径中(如文档和设置)
我没有尝试过:
创建一个变量:
43598811@E250BZD20015026 ~
$ winhome="/cygdrive/c/Documents\ and\ Settings/43598811/"
43598811@E250BZD20015026 ~
$ cd $winhome
bash: cd: /cygdrive/c/Documents\: No such file or directory
43598811@E250BZD20015026 ~
$ cd "$winhome"
bash: cd: /cygdrive/c/Documents\ and\ Settings/43598811/: No such file or directory
Run Code Online (Sandbox Code Playgroud)
创建别名:
43598811@E250BZD20015026 ~
$ alias winhome="/cygdrive/c/Documents\ and\ Settings/43598811/"
43598811@E250BZD20015026 ~
$ winhome
bash: /cygdrive/c/Documents and Settings/43598811/: is a directory
43598811@E250BZD20015026 ~
$ cd winhome
bash: cd: winhome: No such file or directory
Run Code Online (Sandbox Code Playgroud)
使用软链接: 它正在工作......但我不想使用它
有什么建议吗?
Rob*_*obS 25
这有效:
$ winhome="/cygdrive/c/Documents and Settings/"
$ cd "$winhome"
$ pwd
/cygdrive/c/Documents and Settings
Run Code Online (Sandbox Code Playgroud)
Amr*_*mro 17
您可以使用cygpath
将Windows路径转换为与Cygwin兼容的POSIX路径.它还可以输出一些特殊系统文件夹的位置(例如Windows主目录,桌面,我的文档等......)
p="C:\Documents and Settings"
cd "$(cygpath -u "${p}")"
Run Code Online (Sandbox Code Playgroud)
以下是Cygwin文档的一些相关链接:
如果将路径放在引号中,则不需要转义空格,但是在调用时cd
,需要将变量本身放在引号中以获得正确的行为.
所以你的变量应该像这样声明,但是使用变量周围的引号调用:
~> winhome="/cygdrive/c/Documents and Settings/43598811/"
~> cd "$winhome"
Run Code Online (Sandbox Code Playgroud)
这是因为变量在shell中被替换的方式.如果你cd winhome
没有" "
,那么一旦变量被替换,它最终看起来像这样:
cd /cygdrive/c/Documents and Settings/43598811/
Run Code Online (Sandbox Code Playgroud)
这被解析为四个独立的参数:cd
,/cygdrive/c/Documents
,and
,和Settings/43598811/
,因为目录这是没有意义的外壳/cygdrive/c/Documents
不存在.
小智 6
要访问路径/ cygdrive/c/Program Files(x86),请使用\字符.
$ cd /cygdrive/c/Program\ Files\ \(x86\)
Run Code Online (Sandbox Code Playgroud)
美好的一天!
小智 5
现在可能已经很晚了,但过去几年我对这个问题采用了不同的解决方案.在cygwin.bat中,我使用subst
命令为几个语句添加前缀以创建虚拟驱动器.使用此命令,您可以将驱动器号替换为非常长的路径(以及包含空格或特殊Win字符的路径).以后你可以参考他们从你的外壳和脚本直接作为/cygdrive/x/
,/cygdrive/y/
等.这也有助于从像Windows资源管理器等Windows shell获取这些目录的快捷方式.
在相关的说明中,如果需要,可以/cygdrive
使用mount
Cygwin中的命令删除前缀
.看mount --help
.
归档时间: |
|
查看次数: |
48454 次 |
最近记录: |