linux软硬链接

链接命令:In

  • In -s [原文件] [目标文件]
  • 命令英文原意:link
  • 功能描述:生成链接文件
  • 选项: -s 创建软链接

硬链接特征:

  • 拥有相同的i节点和存储block块,可以看做是同一个文件
  • 可通过i节点识别
  • 不能跨分区
  • 不能针对目录使用

在格式化时,第一将分区划分为等大小的block数据块,该数据块通常为4KB。
第二建立分区表,并为每个文件建立一个相关数据。
当用户搜索某个文件时,会先到分区表中查找文件所对应的block存储位置,接着到相应位置取出,并返回给用户。
硬链接与原文件拥有相同的i节点。因此,与原文件非常相似。
当删除原文件或硬链接文件的任何一文件,不影响文件索引操作。
可看做,同一个文件的不通进入点。它是同样的存储空间。
把一个删掉,另一个只要文件名还在,依然可以使用。

ln ./source/abc ./target/bcd.hard 创建后,引用计数+1
ls -i ./source/abc ./target/bcd.hard 可使用ls -i 来查看文件i节点号

不建议创建硬链接文件

  • 文件太过隐蔽,除了有i节点这样一个标识之外,很难区分它是不是硬链接
  • 硬链接限制较多,不能跨分区,不能针对目录,使用当中容易出现错误使用方法

软连接(推荐使用):

  • 1.类似windows快捷方式
  • 2.软连接拥有自己的i节点和block块,但数据块只保存原文件的文件名和I节点,没有实际的文件数据
  • 3.lrwxrwxrwx l软连接 软连接的文件权限都为rwxrwxrwx
  • 4.修改任意文件,另一个都改变
  • 5.删除原文件,软连接不能使用
  • 6.创建软链接,原文件一定要写绝对路径。否则,软链接会到它所在的同一目录去找原文件。

Q&A

软链接是记录块中记录的是目标文件名,而不是目标文件inode,如果是inode,删除目标文件,因为有硬链接的存在,使得inode依然存在,则软连接依然有效,所以记录的不是文件inode;删除目标文件,在新建一个相同文件名的文件(内容不同),则软连接就再次有效了,所以软连接记录的是目标文件名,而不是inode;此时,硬链接和软连接的数据是不同的

巴拉巴拉

走过的路越多,越喜欢宅着。
见过的人越多,越喜欢孩子。
—《我不》

技术太弱,想着闭门修炼,奈何琐事太多,欲望太满,慢慢去提升专注力和学习效率吧~
日常做梦有一众大神带我遨游在技术的海洋,可惜~笨成这个损色儿~安个环境都能出bug~要命呀~
恩,任重而道远,日常加鸡血~