文章

ln 软链接 和 硬链接

Linux系统中,链接可分为 软连接 和 硬链接。

ln 软链接 和 硬链接

简介

ln(即link)的功能是为某一个文件在另外一个位置建立一个同步的链接,分为硬链接(hard link)和符号链接(symbolic link),符号链接又称软链接

软连接:独立于原始文件(删除/重命名链接不影响文件)。

硬链接:是文件实体的别名(删除链接只是减少一个引用计数)。

无论是软连接还是硬链接,修改文件内容都会直接影响原始文件,原始文件和所有链接的文件内容都会同步更新(因为它们指向同一数据块)。

硬链接

创建硬链接

1
ln [源文件 或 源目录] [目标文件 或 目标目录]

软链接

创建软链接

1
ln -s [源文件 或 源目录] [目标文件 或 目标目录]

查看软链接/硬链接

1
ls -l [链接到的目标文件 或 目标目录]

软链接,有箭头->

lrwxrwxrwx 1 nk nk 1 May 31 12:59 ttt -> t

查看 inode 号:

1
2
ls -i
ls -li

硬链接会显示相同的inode号,且与原始文件相同。

软链接有自己的inode号(因此与原始文件不同)。

删除链接

rm 命令:

1
rm 软连接名/硬链接名

如果软连接指向目录,结尾不能加 /(否则会进入目标目录)

unlink 安全删除软连接:

1
unlink /path/to/symlink  # 替代rm,避免误删目录内容

软连接是一个独立的文件,它只是指向另一个文件/目录的快捷方式。删除软连接不会影响原始文件

硬链接是文件的直接引用(与原始文件共享 inode)。删除硬链接只是减少文件的链接计数,当最后一个硬链接被删除后,原始文件也会真正被删除

本文由作者按照 CC BY 4.0 进行授权