为什么在根目录中使用相对符号链接?

为什么在根目录中使用相对符号链接?

我有一个关于根目录中(或非常接近)的符号链接的问题。我的内核版本5.16.11-arch1-2目前是。

当我运行时ls -l /它会打印以下内容:

lrwxrwxrwx   1 root root    7 Dec  6 21:41 bin -> usr/bin
drwxr-xr-x   4 root root 4096 Dec 31  1969 boot
drwxr-xr-x  21 root root 4040 Mar  4 08:33 dev
drwxr-xr-x   1 root root 2932 Mar  4 11:59 etc
drwxr-xr-x   1 root root   18 Jan 17 17:53 home
lrwxrwxrwx   1 root root    7 Dec  6 21:41 lib -> usr/lib
lrwxrwxrwx   1 root root    7 Dec  6 21:41 lib64 -> usr/lib
drwxr-xr-x   1 root root   32 Mar  2 10:00 mnt
drwxr-xr-x   1 root root   46 Mar  3 09:35 opt
dr-xr-xr-x 290 root root    0 Mar  4 08:33 proc
drwxr-x---   1 root root  206 Feb 26 16:37 root
drwxr-xr-x  21 root root  540 Mar  4 08:33 run
lrwxrwxrwx   1 root root    7 Dec  6 21:41 sbin -> usr/bin
drwxr-xr-x   1 root root   16 Feb 28 07:34 snaps
drwxr-xr-x   1 root root   14 Jan 17 15:26 srv
drwxr-xr-x   1 root root   16 Jan 17 13:30 swap
dr-xr-xr-x  13 root root    0 Mar  4 08:33 sys
drwxrwxrwt  19 root root  480 Mar  4 12:15 tmp
drwxr-xr-x   1 root root  116 Mar  3 12:37 usr
drwxr-xr-x   1 root root  106 Mar  4 11:18 var

这里没有任何异常。不过我想重点关注这些符号链接:

lrwxrwxrwx   1 root root    7 Dec  6 21:41 bin -> usr/bin
lrwxrwxrwx   1 root root    7 Dec  6 21:41 lib -> usr/lib
lrwxrwxrwx   1 root root    7 Dec  6 21:41 lib64 -> usr/lib
lrwxrwxrwx   1 root root    7 Dec  6 21:41 sbin -> usr/bin

我对符号链接的理解始终是始终使用绝对路径。这引起了我的注意,因为这些符号链接(由 Arch 在安装时创建)似乎是相对的,而不是绝对的。

当您可以通过在根目录中添加前缀使其成为绝对符号链接时,为什么要在根目录中创建相对符号链接/

答案1

相对符号链接(即使在根目录中)的优点之一是,即使文件系统安装在其他位置,它们也会产生预期的结果。这在修复系统甚至构建系统时非常有用。

相关内容