软链接

软链接正式名称为符号(symbolic link)链接,是指向另一个文件的文件。

和桌面快捷方式差不多

比如典型的 /bin 目录

zhoux@westnorth:~$ ll /bin
lrwxrwxrwx 1 root root 7 Apr 22  2024 /bin -> usr/bin/

按以下方式可以简单创建一对链接,-s 就是 soft

ln -s [源文件] [快捷方式]

对软链接的修改与对源文件的修改是同步的

删除源文件,软链接将消失

硬链接

与软链接不同,硬链接是同一份数据的多个名字,删除一个名字不会删除数据,只有所有名字都删除后数据才会消失。

也就是说,硬链接是一个节点,而链接的文件只是接口,删除接口,文件不会消失

创建硬链接

touch hardfile
ln hardfile hardlink1
ln hardfile hardlink2
ln hardfile hardlink3
#同样是源文件-链接的顺序

权限列后的数字反应了链接数(文件访问端口数),自己+3 个硬链接=4

zhoux@westnorth:~/linux_practice/scripts$ ls -l
total 0
-rw-r--r-- 4 zhoux zhoux 0 Dec  5 12:19 hardfile
-rw-r--r-- 4 zhoux zhoux 0 Dec  5 12:19 hardlink1
-rw-r--r-- 4 zhoux zhoux 0 Dec  5 12:19 hardlink2
-rw-r--r-- 4 zhoux zhoux 0 Dec  5 12:19 hardlink3

对源文件的改动将同步至硬链接

zhoux@westnorth:~/linux_practice/scripts$ echo "xibei we love you" > hardfile
zhoux@westnorth:~/linux_practice/scripts$ cat hardlink1
xibei we love you

删除源文件,硬链接不会消失

zhoux@westnorth:~/linux_practice/scripts$ rm ./hardfile
zhoux@westnorth:~/linux_practice/scripts$ cat ./hardlink1
xibei we love you

硬链接的意义

硬链接看起来像是一份副本,但与复制文件存在本质上的区别

  • 修改是同步的
  • 不会多占用磁盘空间,因为文件始终只有源文件一个

适合使用硬链接的场景

  • 需要多个入口访问同一数据

  • 想节省磁盘空间

  • 需要文件自动同步

  • 防止重要文件被误删(但防不了覆写)