所以。我想将我的一个 Java 文件夹复制到我的用户,然后再复制到其他地方(不要问为什么)。但是,每当我这样做时,即使使用 sudo,我也会得到一个“断开的链接”,它什么也不做。我试过这些事情:正常使用终端。正常使用 nautilus。使用 sudo 和终端。使用 sudo 和 nautilus。
但每一次我试过了,但链接还是坏了。看这里: 或者......(白色应用程序是 sudo,黑色不是) 这可能是一个愚蠢的问题,但是...有什么帮助吗?谢谢。我使用的是 23.04
lrwxrwxrwx 1 root root 21 Jul 20 10:09 java-1.17.0-openjdk-amd64 -> java-17-openjdk-amd64
drwxr-xr-x 7 root root 4096 Aug 3 11:54 java-17-openjdk-amd64
lrwxrwxrwx 1 root root 20 Jul 24 21:17 java-1.8.0-openjdk-amd64 -> java-8-openjdk-amd64
drwxr-xr-x 5 root root 4096 Aug 5 18:01 java-8-openjdk-amd64
我正在尝试替换 Minecraft 的 Java 版本。
答案1
正如输出ls -l
所示,java-1.8.0-openjdk-amd64
这不是一个真正的子目录,而是一个符号链接到java-8-openjdk-amd64
子目录在同一目录中(/usr/lib/jvm
在本例中)。顺便说一下,Nautilus 中文件夹图标旁边的箭头符号也表示了这一点 - 箭头符号表示它是一个链接。
因此,如果您将该链接复制到另一个位置,但没有将相应的子目录复制java-8-openjdk-amd64
到同一位置,则复制的链接将被破坏,因为它指向的对象不存在。
发生这种情况是因为链接指向相对的名称,使用与包含链接的目录相同的基目录进行解析。如果链接指向绝对名称,/usr/lib/jvm/java-8-openjdk-amd64
而不是仅仅指向java-8-openjdk-amd64
,则可以将其复制到任何位置而不会损坏。
您可以自行创建此类链接,而无需复制原始链接。转到您的目标目录:
cd /home/xendyex/Desktop/files/myjavastuff
并输入命令:
ln -s /usr/lib/jvm/java-8-openjdk-amd64 java-1.8.0-openjdk-amd64
java-1.8.0-openjdk-amd64
您已经在目录中创建了/home/xendyex/Desktop/files/myjavastuff
指向 的链接/usr/lib/jvm/java-8-openjdk-amd64
。
但请注意不抄袭原始 Java 文件夹(如果这是您想要做的),它只会创建一个关联将其复制到另一个位置。如果要进行实际复制,则需要复制实际子目录java-8-openjdk-amd64
,而不是链接。