![在 cygwin bash 上创建名称中带有冒号的符号链接](https://linux22.com/image/76233/%E5%9C%A8%20cygwin%20bash%20%E4%B8%8A%E5%88%9B%E5%BB%BA%E5%90%8D%E7%A7%B0%E4%B8%AD%E5%B8%A6%E6%9C%89%E5%86%92%E5%8F%B7%E7%9A%84%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5.png)
我在 cygwin 上使用 bash,版本 4.3.42(4)-release (i686-pc-cygwin)。我想创建一个符号链接,C: -> /cygdrive
因为 vagrant 构建过程指定了该文件路径。 vagrant 脚本已经创建了一些名为的文件系统实体C:
$ ls -lha
total 8.0K
drwxrwxr-x+ 1 user Domain Users 0 Oct 27 15:55 .
drwxrwxr-x+ 1 user Domain Users 0 Oct 27 15:55 ..
drwxrwxr-x+ 1 user Domain Users 0 Oct 27 14:59 C:
但它实际上并未链接到 C: 驱动器:
$ ls C:
$
这个C:
东西可以在其他基于 的 shell 中工作cmd.exe
,比如 msysgit,但是 cygwin 不理解它。
#<R10K::Task::Module::Sync:0x38c6010> failed while running: Command git --git-dir C:/cygwin/home/user/vagrant/puppet/modules/profile/.git --work-tree C:/cygwin/home/user/vagrant/puppet/modules/profile remote set-url cache C:/cygwin/home/user/.r10k/git/[email protected] exited with 128: fatal: No such remote 'cache'
但该文件存在:
$ ls puppet/modules/profile/.git
config description HEAD hooks index info logs objects packed-refs refs
C:
我在指定文件名时遇到问题。
$ ln -s /cygdrive/c "C:"
ln: target ‘C:’ is not a directory: No such file or directory
$ ln -s /cygdrive/c C\:
ln: target ‘C:’ is not a directory: No such file or directory
$ ln -s /cygdrive/c "C\:"
ln: failed to create symbolic link ‘C\\:’: No such file or directory
$ cdrive="C:"
$ ln -s /cygdrive/c $cdrive
ln: target ‘C:’ is not a directory: No such file or directory
我怎样才能创建这个符号链接?
编辑关于小写字母的评论中建议的解决方案c:
在我的流浪脚本中不起作用。它似乎需要C:
(参见我在上面列出的流浪者错误,它尝试访问路径C:/cygwin/home/user/...
答案1
ln -s /cygdrive/c ./C:
谢谢! @StéphaneChazelas
我在自己的帐户下发布了此问题,因此这个问题的答案不会隐藏在评论中。这是我在谷歌搜索时发现自己的问题之后的结果:S