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,(每个子目录里面都有.. 指向父目录)
 在父目录里面创建文件,父目录的连接不会增加
原文地址:https://www.cnblogs.com/zhanghongqi/p/11578302.html