ln in Linux

时间:2023-08-21 10:34:44
默认情况(硬连接)
ln 目标 连接名称
ll -i 显示文件的inode信息,即文件节点信息
➜  test1 ll -i 1.txt
27987655 -rw-r--r--  1 myuser  staff     8B 10 31 10:44 1.txt
➜  test1 ln 1.txt a
➜  test1 ll -i
total 16
-rw-r--r--  2 myuser  staff     8B 10 31 10:44 1.txt
-rw-r--r--  2 myuser  staff     8B 10 31 10:44 a
➜  test1
可见使用默认设置建立的连接,与原文件有相同的inode
软连接
ln -s 目标 连接名称
➜  test1 ln -s 1.txt symbol_link
➜  test1 ll -i
total 24
-rw-r--r--  2 myuser  staff     8B 10 31 10:44 1.txt
27987655 -rw-r--r--  2 myuser  staff     8B 10 31 10:44 a
lrwxr-xr-x  1 myuser  staff     5B 10 31 10:47 symbol_link -> 1.txt
➜  test1
可见软链接会新建有不同的inode的连接
Linux默认不允许用户使用硬连接连接到目录,目的是防止连接自引用,陷入死循环。
但是可以使用软连接连接到目录,这是因为Linux系统遍历文件时,如果连续遇到8个符号连接(软连接)之后就停止遍历,这样的设置保证不会发生死循环的情况。
ln -n 选项
如果目标位置已存在同名连接,则覆盖连接,而不是在连接指向的位置进行操作,即”—no-dereference"
其他参数可参照"man ln”命令。