Filenames

在 cygwin bash 上創建名稱中帶有冒號的符號連結

  • January 14, 2016

我在 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/ssh---git@git.highlights.com-7999--vagrant-profile.git 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:(參見我在上面列出的 vagrant 錯誤,它試圖訪問路徑C:/cygwin/home/user/...

ln -s /cygdrive/c ./C:

謝謝!@StéphaneChazelas

我在我自己的帳戶下發布了這個,所以這個問題的答案不會隱藏在評論中。這是在我在Google搜尋時發現自己的問題之後:S

引用自:https://unix.stackexchange.com/questions/239524