zoukankan      html  css  js  c++  java
  • Linux硬链接和软连接详解

    硬链接:

      硬链接是通过索引节点inode来进行链接的(关于inode,http://www.cnblogs.com/ZGreMount/p/7653307.html)。在Linux(ext2,ext3)文件系统中,保存在磁盘分区中的文件不管是什么类型都会给他分配一个编号,这个编号被称为索引节点编号(Inode index)简称inode,即在系统中文件的编号。

      在Linux文件系统中,多个文件名指向同一个索引节点(Inode)是正常且允许的。这种情况的文件就成为硬链接文件。硬链接文件的作用之一是允许一个文件拥有多个有效的路径名,这样用户就可以建立硬链接到重要的文件,以防止误删重要源数据。很多硬件存储,如netapp存储中的快照功能就是应用了这个原理。

      文件名--->inode节点--->block块

      一个文件名对应一个inode节点,inode节点存放文件属性信息,block块存放文件实际内容。多个文件名可以指向同一个inode节点,即硬链接。

      每一个文件都有两个计数器,i_link和i_count。i_link是文件的硬连接数,i_count是使用该文件的进程数。删除一个源文件或硬链接文件,i_link减一,当i_link为0,且i_count为0时,文件被删除,若i_count不为0,则等待使用该文件的最后一个进程释放该文件后,该文件才真正被删除。

      用”ln 源文件 硬链接文件“创建硬链接文件,用rm命令删除

    软连接:

      软连接也称为符号连接。Linux中的软连接文件类似于Windows中的快捷方式。Linux中的软连接文件实际上是一个普通的文件,只不过其内容是其指向的文件的路径。访问软连接文件,系统读取其内容,通过路径找到源文件。用readlink命令可以读取软连接文件内容,而不跟到源文件。软连接和源文件是两个独立的文件,拥有不同inode和block。

      用”ln -s 源文件 软链接文件“创建软链接文件,用rm命令删除

    注:

      1 对目录不可以创建硬链接文件,但是可以创建软连接

      2 硬链接不可以跨越文件系统,软连接可以。

      

  • 相关阅读:
    MS SQL执行大脚本文件时,提示“未能完成操作,存储空间不足,无法处理此命令”的解决办法
    一、Flux 是什么?
    for...in for..of
    循环总结
    javascript中几种this指向问题
    redux
    布局方式
    js获取前几个月的具体日期
    动态引入js文件
    获取页面url信息
  • 原文地址:https://www.cnblogs.com/ZGreMount/p/7655830.html
Copyright © 2011-2022 走看看