我有一个关于根目录中(或非常接近)的符号链接的问题。我的内核版本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
相对符号链接(即使在根目录中)的优点之一是,即使文件系统安装在其他位置,它们也会产生预期的结果。这在修复系统甚至构建系统时非常有用。