hard link soft link
2018-03-07 22:45 懦米虫 阅读(423) 评论(0) 编辑 收藏 举报tg 小伙伴的解释
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
鸟哥的 passwd-hd是硬连结 passwd-so 符号连结
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
有hard link 你删除源文件 不会删除inode 和block data
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
所以你cat hard link还是会有数据显示的 文件还存在
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
除非你删除所有hard link
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
那删除源文件后 inode指向的block都变了?
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
没变 inode 和block data 都不变
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
soft link是会新建inode 和block data的 block data指向源文件
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
所以你cat soft link 不会显示数据了
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
soft link - inode - block data - file - inode - block data
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
是这样的寻找数据过程 你删除了 file 中间就断了 所以不会显示
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
本来只有一个 然后创建了一个hard link 其实还是只有一个 ;然后删了源文件 还有一个 那其实是有两个? 可是文件又没增多……
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
hard link - inode - block data
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
hard link 的inode 和file的inode 一样的
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
不知道你能不能明白
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
那文件确实是多了一个么
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
说白了就是寻找数据的过程不一样导致的结果不同
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
/没有多
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
文件还是原来那个
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
有hard link 你只能删除file 不能删除inode 和block data
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
懂了吧
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
file 和block data 是什么关系
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
这样的关系
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
删除 file. 它的inode和block. data 都不会删除 因为有hard link
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
这样你再看图就能看懂了
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
file 怎么会指向inode呢…… 这个file 又不是目录
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
file怎么就不能有inode
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
目录也属于file
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
block data 和file是不是挂载的关系
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
你去看看Linux文件系统。。。
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
感觉跟你解释也是解释不通。
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
看的就是文件系统……
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
没看到有file这个说法
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
file就是文件
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
翻译过来
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
那你看到什么说法?
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
那你告诉我目录和文件的区别是
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
啥
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
我 的理解是file 和block data 是同一个东西
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
目录就是文件 这我明白
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
根本不是同一个东西
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
一个file 可以占用1个 也可能是100w个block data
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
file只是记录数据存放信息的一个东西而已
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
记录 inode 占用的block data 等信息
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
按照你的理解 一定不能理解 为什么linux删除1m 和100g的文件 都是一秒就删除了 ?
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
明白了……file 记录的是inode的信息
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
不是block data 的集合
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
这就是为什么数据还能恢复的原因 实际上 数据还存在block data里面
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
只要没有被其它文件占用 就能恢复
懦米虫, [07.03.18 22:36]
[Forwarded from 懦米虫]
懂了 谢谢你啊 解释了半天😳
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
不客气 正好有空
懦米虫, [07.03.18 22:36]
[Forwarded from David Rossi「丐帮长老」]
soft link会自己创建inode和 block data
硬链接(hard link)和符号连接(symbolic link)的区别:
通俗一点理解,可以把硬链接当成源文件的副本,他和源文件一样的大小但是事实上却不占任何空间。
符号链接可以理解为类似windows一样的快捷方式。
一、链接文件
链接文件有两种方式,符号链接和硬链接。
1、符号链接文件
符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,也可以链接不同文件系统的文件。甚至可以链接不存在的文件,这就产生一般称为“断裂”的问题(现象),还可以不断的循环链接自己。
用ln -s 命令可以生成一个符号链接,如下所示:
#ln -s source_file softlink_file
在对符号链接进行读写操作的时候,系统会自动把该操作转换为对源文件的操作。但是删除链接文件时,系统仅仅删除符号链接文件,而不删除源文件本身。
2、硬链接文件
硬链接的命令是:
#ln existfile newfile
硬链接文件有两个限制
1)、不允许给目录创建硬链接
2)、只允许在同一文件系统中的文件之间才能创建链接
对于硬练级文件进行读写和删除操作的时候,结果和符号链接相同。但是如果我们删除硬链接文件的源文件,硬链接文件仍存在,而且保留了原有的内容。
二、两者之间的区别
硬链接是通过索引节点(inode index)来进行链接的。在linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给他分配一个编号,称为索引节点号(inode index)。
在linux中,多个文件名指向同一索引点是存在的。一般这种链接是硬链接。硬链接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,起到防止“误删”的功能。
因为对应目录的索引节点有一个以上的链接,只删除一个链接并不影响索引节点本身和其他的链接,只有当最后一个链接被删除后,文件的数据块及目录的链接才会被释放。也就是说,至此文件才被真正删除。
符号链接文件有点类似于windows的快捷方式。他实际上是特殊文件的一种。在符号链接中,文件实际上是一个文本文件,他包含了另一个文件的位置信息。
三、体会
符号链接(symbolic link)在建立的时候建立了一个新的inode,并记录了指向源文件inode的路径。所以symbolic的inode
number跟原始档案的inode number是不一样的。这也是为什么symbolic link能够跨越不同文件系统的原因。
符号链接建立了新的inode number,所以它是一个真实的文件并占有一定的磁盘空间。另外对symbolic link的操作除了删除都会直接对源文件进行操作。
硬链接(hard link)并没有新建立inode,而是新建了一个内容以及inode number、hard
link文件名和其他相关资讯的一个directory entry,所以hard link的inode number跟源文件的inode
number是一样的。因为一个文件系统有着相同的inode number,所以hard link是不可以跨文件系统创建的。也可以将hard
link理解为不是一个文件,把它看成是同一个inode的别名,建立hard
link后他和源文件互为别名,删除其中任何一个,inode都不会释放。只有指向同一inode的文件名都删除后,inode才释放。hard
link实际上是不占空间的。