硬连接和软连接,第一感觉就像是window的快捷方式,实则不然
要说硬连接和软连接,那就必须了解inode和block以及分区了
EXT文件系统在创建分区的时候,就划分了两块区域,inode table和date block
INODE
inode – index node ,索引节点
每一个inode固定分配了128bytes的空间
一个文件和目录对应着一个inode
多个文件可以对应一个inode
当访问一个文件的时候,发生了什么
首先会找到这个文件名对应的inode number,然后拿着inode number 找到inode,获取inode中的信息,inode中记录了文件的数据在哪些个block中储存,然后会根据着inode中的block顺序,依次取出数据
INODE的内容
用sata命令取出文件名对应的inode信息
- size :该文件的大小
- block : block的信息
- links :有多少个连接数,有多少个文件名连接上这个inode
- inode: inode number
- Access:mode 权限
- uid、gid
- atime、mtime、ctime
删除
删除一个文件的时候发生了什么?
当这个文件的links>1的时候,先links-1,不删除block中的数据,不删除inode
如果links=1,那就删除inode,而且删除block,这样的话,那文件真的是删除了
删除目录的软连接,对实际目录没有影响,删除实际目录那就是真的删除了
硬连接
ln source destination
用上面的指令可以新建一个硬连接
建一个硬连接发生了什么?
先新建一个文件名,文件名的inode number 指向源文件的inode number,然后把links+1,这就完成啦
所以硬连接文件的所有信息(权限、owner、size、time….)都和源文件一模一样
访问硬连接的过程
找出硬连接的inode number,然后读取这个inode的信息和bolck位置,接着读取block中的数据
注意
- 源文件和硬连接文件共用一个inode
- 建立硬连接,inode中的links会加一
- 所以删除硬连接对源文件不会有影响
软连接
ln -s source destination
用上面的指令可以建立一个软连接
建一个软连接发生了什么?
先建立一个文件,这个过程就会新建一个inode,软连接的inode和源文件的inode不一样
然后这个软连接文件的文件名会指向源文件
可以看到,软连接的inode和源文件的inode不一样
软连接文件的大小为4bytes,这刚好就是源文件文件名(demo)的大小,一个字幕一个byte
访问一个软连接
访问一个软连接文件的时候,会根据文件名找到源文件,然后就跟直接访问源文件一样了
注意
- 软连接的inode和源文件的inode不一样
- 软连接不会增加links,所以删除源文件(links=2)的时候,软连接就访问不了了
- 软连接文件的size=源文件的文件名的size
相关推荐
与硬连接不同,软连接不是直接指向索引节点,而是创建一个指向目标文件的新文件,这个新文件本质上是一个包含目标文件路径的文本文件。软连接更类似于Windows操作系统中的快捷方式,当目标文件移动或删除时,软连接...
与硬连接不同,符号连接不直接指向索引节点,而是通过路径名解析来定位目标文件。 **特点**: - **独立的索引节点**:符号连接拥有自己的索引节点,即使目标文件被删除,符号连接仍然存在,但会变成一个无效的链接...
符号链接允许你在文件系统中创建“软”连接,这意味着即使目标文件在其他位置移动或重命名,链接依然有效。这在软件开发中尤其有用,因为可以轻松地在不同项目之间共享库或配置文件。 在提供的压缩包中,"junction....
41. links分为硬链接和软链接。 42. 查看所有进程的命令是ps -ef。 43. 管道文件的属性位p。 44. 管道|用于连接命令的标准输出和标准输入。 45. chmod +x filename.sh赋予脚本执行权限。 46. telnet命令用于...
40. Links分类:硬链接和软链接。 41. 显示全部进程:ps -ef。 42. 管道文件:管道符"| "用于连接命令。 43. 执行权:chmod +x。 44. 远程登录:ssh。 45. ping命令测试:ping -c 10 abc.tuu.edu.cn。 46. DNS...
硬链接是指两个或更多个文件名共享同一 inode(inode 是文件系统中记录文件属性和位置的数据结构),而软链接则类似于Windows系统中的快捷方式,包含对目标文件路径的引用。当链接文件指向的目标文件被删除,链接就...
硬连接只能建立对文件链接。符号链接可以跨不同文件系统创建。** - **知识点**: 硬链接只能在同一文件系统内创建,而符号链接可以跨越文件系统。 **40. 套接字文件的属性位是s。** - **知识点**: 套接字文件的特殊...
38. **硬连接只能建立对文件链接。符号链接可以跨不同文件系统创建。** - 硬链接和符号链接都是链接文件的方式,但硬链接只能在同一文件系统内创建,而符号链接可以跨越不同的文件系统。 39. **套接字文件的属性位...
硬连接只能建立对文件链接。符号链接可以跨不同文件系统创建。 **知识点**:硬链接和符号链接是Linux中两种类型的链接: - **硬链接**:指向同一个i节点的多个文件名,适用于同一文件系统内的文件。 - **符号链接...