将文件从“root”复制到“user”会出现一个断开的链接

将文件从“root”复制到“user”会出现一个断开的链接

所以。我想将我的一个 Java 文件夹复制到我的用户,然后再复制到其他地方(不要问为什么)。但是,每当我这样做时,即使使用 sudo,我也会得到一个“断开的链接”,它什么也不做。我试过这些事情:正常使用终端。正常使用 nautilus。使用 sudo 和终端。使用 sudo 和 nautilus。

每一次我试过了,但链接还是坏了。看这里: sudo cp java-1.8(etc) /home/xendyex/Desktop/files/myjavastuff java 和一个空文件夹。 或者......(白色应用程序是 sudo,黑色不是) sudo nautilus 和普通 nautilus 的照片,其中普通窗口中有一个断开的链接 这可能是一个愚蠢的问题,但是...有什么帮助吗?谢谢。我使用的是 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,而不是链接。

相关内容