Mac 上奇怪的軟連結 ln 指令問題

Mac 上奇怪的軟連結 ln 指令問題

我想建立空目錄/Library/Java/JavaVirtualMachines/jdk1.8.0_5.jdk/Contents/Home/,它指向真實目錄/Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home/,因為某些程式碼依賴這個特定版本的 JDK(1.8.0_5,但我只有 1.8.0_74),但 ln 命令失敗並出現以下錯誤,任何想法有什麼問題嗎?謝謝。

順便說一句,我使用的是 Mac OSX。

ls -l /Library/Java/JavaVirtualMachines/
total 0
drwxr-xr-x  3 root  root  102 Jan 20 16:32 Contents
drwxr-xr-x  3 root  root  102 Jan 25 16:16 jdk1.8.0_05.jdk
drwxr-xr-x  3 root  root  102 Jan 25 16:15 jdk1.8.0_25.jdk
drwxr-xr-x  3 root  root  102 Jan 25 16:15 jdk1.8.0_40.jdk
drwxr-xr-x  3 root  root  102 Jan 20 16:32 jdk1.8.0_72.jdk
drwxr-xr-x  3 root  root  102 Feb  5 15:25 jdk1.8.0_74.jdk
ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_5.jdk/Contents/Home/ /Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home/
ln: /Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home//Home: File exists

更新,嘗試了 Schlachter 的解決方案,但遇到了新問題,

ls /Library/Java/JavaVirtualMachines
Contents        jdk1.7.0_51.jdk jdk1.8.0_25.jdk jdk1.8.0_72.jdk jdk1.8.0_77.jdk
jdk1.7.0_21.jdk jdk1.8.0_05.jdk jdk1.8.0_40.jdk jdk1.8.0_74.jdk

ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk1.8.0_5.jdk/Contents/
ln: /Library/Java/JavaVirtualMachines/jdk1.8.0_5.jdk/Contents/: No such file or directory

答案1

只要jdk1.8.0_5.jdk/Contents/Home不存在,您就可以使用:

ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_74.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk1.8.0_5.jdk/Contents/

尾部斜線Contents/會將Home捷徑放入資料夾內Contents。該資料夾上沒有斜線,Home因為它是連結的目標。

編輯:連結所在的上述所有資料夾都需要存在。mkdir可以為您創建它/它們,例如mkdir -p /Library/Java/JavaVirtualMachines/jdk1.8.0_5.jdk/Contents

相關內容