Linux软硬链接


一、建立连接

ln可以用来建立链接,不过ln是建立硬链接,然后若是加选项-s则为建立软链接(ln -s)
建立软链接 ln -s 源文件 目标文件(链接名)
在这里插入图片描述
若是链接的是一个不存在的文件,则会出现指向错误
在这里插入图片描述
执行正常软链接能过执行但是执行错误软链接则不能执行
在这里插入图片描述
ln建立一个硬链接只是对这个文件取了一个别名,他们的inode是相同的
在这里插入图片描述
内核记录了硬链接链接个数,Inode为530047的硬链接个数为2,普通文件建立时它的硬链接数是1因为没有其他的硬链接指向这个文件。
而我们在删除文件时干了两件事情:1.在目录中将对应的记录删除,2.将硬连接数-1,如果为0,则将对应的磁盘释放。
删除链接可以使用unlink或者直接用rm(链接也是一个文件)删除

二、软链接

软链接是一种类似快捷方式的,就是在桌面上建立的快捷方式,建立了软链接这个软连接也是一个文件有自己的inode编号,软链接数据块中存的是它指向文件的地址(路径),当点击这个软连接时就是去执行这个地址对应的文件内容。软链接是一个独立的文件,当一个软链接删除时,不会影响它指向路径中的内容,但是若是将指向路径文件删除之后,软链接没有指向,这个软链接就会失败,找不到源头了,就像是桌面快捷方式删除不会对存储在电脑中的应用造成影响,但是若是电脑中应用删除,那么软链接再去查找就找不到对应软件!软链接建立是方便用户去到文件绝对路径去查找这一个软件,更加方便了用户只需要点击软链接就能执行同样的结果!

三、硬链接

硬链接就是相当于给一个文件取别名,硬链接不是一个独立的文件,他没有独立的inode编号。真正找到磁盘上文件的并不是文件名,而是inode。 其实在linux中可以让多个文件名对应于同一个inode。 硬链接两个文件一切都相同就是换了一个文件名,在上一级目录下,它的数据块中,inode与文件名的映射数量+1,而这也侧面证明了文件名不在当前目录下,不然同一个inode不会存在两个文件名。硬链接就是在特定目录的数据块中新增文件名和指向文件的inode编号的映射关系,每一个inode可以被多个文件名指向,统计硬链接数通常使用引用计数方式统计。增加一个硬链接就是在目录下将新的文件名和inode映射拷贝一份。所以任何一个文件,无论是目录还是普通文件都有Inode,每一个inode内部都有一个引用计数统计硬链接的数量目录中保存的是文件名:inode和文件名之间的映射关系.

四、软硬链接应用场景

软链接应用场景
就是一个快捷方式
系统中存在大量的软链接,用ls -/lib64/. -l查看
在这里插入图片描述
软链接应用场景最常见就是建立快捷方式
硬链接应用场景
创建一个目录,这个目录的硬连接数是2,而创建一个普通文件它的硬链接数是1.为什么?
在这里插入图片描述
因为任何一个目录下都有两个文件.文件和..文件
.代表当前文件,而..代表上一目录文件
在这里插入图片描述
因为.与当前目录的inode编号是一样的,而..和上一目录的inode编号一样,所以.是当前目录,..是上一级目录,所以.就相当于这一目录的一个别名,就是它的一个硬链接,而再在这一目录建立一个硬链接它的硬链接数会变为3 (理论上).每一个目录下都有...文件着更方便与路径的切换。Linux系统不允许对目录建立硬链接因为会形成环路问题,可能会出现系统及bug。所以当你在对目录建立硬链接时会阻止对目录建立硬链接!
硬链接通常应用于对路径来回切换

相关推荐

  1. Linux下的

    2024-04-22 21:14:06       36 阅读
  2. Linux

    2024-04-22 21:14:06       44 阅读
  3. Linux

    2024-04-22 21:14:06       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-22 21:14:06       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-22 21:14:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-22 21:14:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-22 21:14:06       18 阅读

热门阅读

  1. 多线程批量导入mysql

    2024-04-22 21:14:06       13 阅读
  2. vue2 mixins混入

    2024-04-22 21:14:06       15 阅读
  3. HashTable和ConcurrentHashMap的区别

    2024-04-22 21:14:06       16 阅读
  4. 前端错误监控的方法有哪些

    2024-04-22 21:14:06       16 阅读
  5. numpy

    2024-04-22 21:14:06       15 阅读
  6. C# 接口

    2024-04-22 21:14:06       51 阅读
  7. ubuntu在线安装mysql数据库

    2024-04-22 21:14:06       50 阅读
  8. 十分钟Nginx优化速成课

    2024-04-22 21:14:06       30 阅读
  9. 浅理解vue2中的模板编译

    2024-04-22 21:14:06       17 阅读
  10. H3C交换机FTP与TFTP

    2024-04-22 21:14:06       19 阅读
  11. Android view点击监听

    2024-04-22 21:14:06       17 阅读