soarli

Linux中软连接、硬链接和cp的区别
新建了一个文件f1,拿它作为小白鼠soarli@soarli-virtual-machine:~/桌面/tstln...
扫描右侧二维码阅读全文
03
2020/02

Linux中软连接、硬链接和cp的区别

新建了一个文件f1,拿它作为小白鼠

soarli@soarli-virtual-machine:~/桌面/tstlnk$ ll
总用量 32
drwxr-xr-x 2 soarli soarli  4096 2月   3 13:41 ./
drwxr-xr-x 4 soarli soarli  4096 2月   3 13:34 ../
-rw-r--r-- 1 soarli soarli 20736 2月   3 13:18 f1

创建一个硬链接,不难发现其文件ID是相同的(指向同一块儿空间)

soarli@soarli-virtual-machine:~/桌面/tstlnk$ ln f1 f2
soarli@soarli-virtual-machine:~/桌面/tstlnk$ ll -i
总用量 56
936968 drwxr-xr-x 2 soarli soarli  4096 2月   3 13:41 ./
919635 drwxr-xr-x 4 soarli soarli  4096 2月   3 13:34 ../
936970 -rw-r--r-- 2 soarli soarli 20736 2月   3 13:18 f1
936970 -rw-r--r-- 2 soarli soarli 20736 2月   3 13:18 f2

创建一个软连接(我们可以把f1也当作硬链接,f3通过硬链接f1指向真实文件)

soarli@soarli-virtual-machine:~/桌面/tstlnk$ ln -s f1 f3
soarli@soarli-virtual-machine:~/桌面/tstlnk$ ll -i
总用量 56
936968 drwxr-xr-x 2 soarli soarli  4096 2月   3 13:41 ./
919635 drwxr-xr-x 4 soarli soarli  4096 2月   3 13:34 ../
936970 -rw-r--r-- 2 soarli soarli 20736 2月   3 13:18 f1
936970 -rw-r--r-- 2 soarli soarli 20736 2月   3 13:18 f2
931421 lrwxrwxrwx 1 soarli soarli     2 2月   3 13:41 f3 -> f1

copy f1 到 f4,不难发现,其文件ID发生变化(使用了一块儿新的存储空间)

soarli@soarli-virtual-machine:~/桌面/tstlnk$ cp f1 f4
soarli@soarli-virtual-machine:~/桌面/tstlnk$ ll -i
总用量 80
936968 drwxr-xr-x 2 soarli soarli  4096 2月   3 13:41 ./
919635 drwxr-xr-x 4 soarli soarli  4096 2月   3 13:34 ../
936970 -rw-r--r-- 2 soarli soarli 20736 2月   3 13:18 f1
936970 -rw-r--r-- 2 soarli soarli 20736 2月   3 13:18 f2
931421 lrwxrwxrwx 1 soarli soarli     2 2月   3 13:41 f3 -> f1
937048 -rw-r--r-- 1 soarli soarli 20736 2月   3 13:41 f4

小结:

  • 系统对于硬链接有一个计数器,当硬链接数变为零时,彻底释放文件占用的空间
  • 软连接则可以理解成“指针的指针”

参考资料:

https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html

https://baike.baidu.com/item/%E7%A1%AC%E9%93%BE%E6%8E%A5/2088758?fr=aladdin

https://www.cnblogs.com/zhulin-jun/p/5635180.html

最后修改:2022 年 01 月 07 日 06 : 10 PM

发表评论