硬链接
正常情况下,一个文件名,其实就是一个硬链接,Linux 允许文件具有多个不同的文件名。
如果一个文件具有多个硬链接(不同的文件名),那么除非所有的硬链接都被删除了,否则文件依然存在。
硬链接只能用于常规文件,不能用于目录或特殊文件,并且只能位于同一个文件系统内才能够使用。
通过 地址可以判断,多个文件名(硬链接)是否是指向同一个文件(地址空间)。具体方式是 ls -i 即使用 -i 参数
# 假设当前目录是用户目录
touch 1.txt
# 其实建议写绝对路径
ln 1.txt hard-1.txt
ls -il 1.txt hard-1.txt
# 请确保目的路径的中间路径(下例为 otheruser)
mkdir /home/other
ln 1.txt /home/other/hard-1.txt
软链接
类似 Windows 中的快捷方式。
软链接也叫做符号链接
目录或特殊文件可以进行软链接,而且可以跨越不同的文件系统。
悬挂问题: 删除原始文件时,软链接依然会指向该文件,只不过会变成 badlink,但是如果又创建跟原始文件同名的文件时,该软链接又能够重新工作。
# 建立软链接
# 建议写绝对路径,但相对路径也不是不行
ln -s 1.txt s-l-1.txt
ln -s /etc /home/student/s-l-etc
