linux 软连接 硬链接

建立一个文件的过程:
    先问super block获取inode编号,然后把建立的文件和inode进行绑定。
删除一个文件的过程:
    先要释放要删除文件的inode编号,然后解除文件与inode的关系,再在数据block里释放block,告诉系统这个block可以使用。
    如果此时没有新文件的创建覆盖这个block,则可以通过重新建立inode和文件的关系恢复数据。
    如果此时有新文件覆盖,则不能恢复数据    


软连接


    建立软连接(类似于快捷方式,指向源文件名)
        ln -s 源文件路径(绝对路径) 链接文件路径(绝对路径)
            修改
                修改链接文件 源文件也会跟着变
                修改源文件 链接文件也会跟着变
            删除
                删除链接文件对源文件没有影响
                删除源文件对链接文件有影响
                


硬链接


    建立硬连接(指向inode,唯一标示)
        ln 源文件路径(绝对路径) 链接文件路径(绝对路径)
            源文件和链接文件的inode一样,而软连接inode是不一样的
            修改
                修改链接文件 源文件也会跟着变
                修改源文件 链接文件也会跟着变
            删除
                删除链接文件对源文件没有影响
                删除源文件对链接文件没有影响
                
                
软连接的实现
    链接文件通过源文件再指向inode对应的block块,
    所以inode是不一样的,因为源文件的inode是指向block块,链接文件的inode是指向源文件
    
    实现过程:
        链接文件为des.txt,源文件为source.txt。
        先通过链接文件的inode指向的文件名找到源文件名,再通过源文件名根目录下找到源文件,
        然后知道了源文件的inode编号,最后通过inode找到block块。
    
硬链接的实现
    链接文件和源文件都是指向同一个inode,所以inode是一样。
    
    实现过程:
        源文件和链接文件都通过同一个inode找到block块
    
软连接支持跨分区,硬链接不支持
    比如跨区硬链接,源文件指向的inode是111,链接文件的inode也指向111,
    但是他们两个指向的inode虽然都是一样但是不是同一个block
    
也可以对目录做硬链接软连接
    

猜你喜欢

转载自blog.csdn.net/u014248032/article/details/85121010