Linux_软硬连接
1.硬链接 :ln 源文件,目标文件
1.是指通过inode(索引节点)来进行连接的
2.多个文件指向同一个索引节点
3.硬链接文件就相当于文件的另外一个入口
4.作用:备份 防止数据误删
5.硬链接文件是普通文件,可以用rm 删除
6.在linux系统中,删除静态文件(没有系统调用)【目录也是文件】的条件是与之相关的所有硬链接文件均被删除
当硬链接的个数为0的时候,文件也就被删除了
cp
cp会重新创建一个文件并且复制相同的内容,占用新的空间,新的inode,这是两个文件。
而硬链接实际上是增加了原来文件的count,并创建了一个连接,当你删除一个源文件或者一个硬链接后,count减1,到0后删除文件。
2.软连接 ln -s 源文件 目标文件
1.符号链接 相当于快捷方式(windows)
2.软连接 和 源文件 是不同类型的文件,也是不同的文件,inode号也不相同
3. 软连接存放的是文件的路径
4. 删除 源文件 软连接依旧存在,显示为红色闪烁
5. 作用 可以做数据迁移
打个简单的比喻
你在巷子里开一家超市 ---> 硬链接 超市的两个门
---> 软连接 十字路口的 牌子(往里走100米 有超市)
关一个门(删除硬链接) 超市不受影响(目标文件),十字路口的牌子依然指向这个超市(软连接不受影响)
超市关了(删除源文件) 十字路口的牌子没有用了(软连接错误)
小节:
删除软连接文件 对源文件和硬链接文件 都没有影响
删除源文件 硬链接没影响 软连接文件无法打开
面试题:
提问:
01. 硬链接可以防止文件误删除 cp命令也可以备份文件防止误删除
尽量备份文件时,最好还是要利用cp备份
硬链接备份文件: 只能防止文件误删除 不能防止文件误修改
cp备份文件: 可以进行数据恢复
02. 创建新文件硬链接数是多少? 创建新目录硬链接数是多少?
目录硬链接数为什么和文件硬链接数不同
文件默认硬链接数为 1
目录默认硬链接数为 2 目录中有子目录,硬链接数还会递增
. 当前目录
.. 上一级目录
目录的连接:
1.目录不可以创建硬链接,但可以创建软连接
2.目录的硬链接不能跨越文件系统(从硬连接原理可以理解)
3.每个目录下面都有一个硬链接 "." 号,和对应的上级目录的硬链接 ".. "
4.在父目录里创建一个子目录,父目录的链接数增加1,(每个子目录里面都有.. 指向父目录)
在父目录里面创建文件,父目录的连接不会增加