Linux中的软硬链接
Linux文件的组成
在Linux一个文件由三部组成:
- 目录项(Dirent):包含文件名和inode号
- 索引节点(Inode):主要是文件的metadata,就是文件属性相关的信息,以及文件Block所在的指针
- 数据块(Data Blocks):文件内容
一个文件的读取过程就是:
文件名 ---> indoe号 ---> 文件数据块
软链接与硬链接
创建一个软链接与一个硬链接
$ touch hard
$ ln hard h
$ touch symbolic
$ ln -s hard s
查看创建结果
ls -li
total 0
101759488 -rw-r--r--. 2 root root 0 May 30 17:38 h
101759488 -rw-r--r--. 2 root root 0 May 30 17:38 hard
101759490 lrwxrwxrwx. 1 root root 8 May 30 17:38 s -> symbolic
101759489 -rw-r--r--. 1 root root 0 May 31 11:04 symbolic
从中可以看出
- 硬链接产生的是多一个文件目录项,文件对应的inode号是一样的,链接次数增大
- 软链接则是一种链接类型的文件
软链接(Symbolic Link)
- 一种文件链接,类似windows的快捷方式
- 原文件删除会使链接失效
硬链接(Hard Link)
- 相当于多个文件名指向同一个文件
- 删除其中一个文件不会删除对应的文件数据块,只有链接数为1的时候才会删除数据块
- 可以用于防止文件的误删
- 只能用于文件上,无法链接文件夹
网友评论