linux中软链接和硬链接

来源:互联网 发布:手机吉他教学软件 编辑:程序博客网 时间:2024/05/08 10:39

linux中存在两种链接文件,软链接和硬链接。


硬链接

使用方式: ln sourceFile destFile

原理:linux文件系统中每个文件所对应的实际硬盘位置信息会存储在文件的Inode中,目录结构的实现即是通过Inode的组织实现的,具体还涉及到文件块的分配等,以后有机会在写文章回顾大学学的这部分知识。Inode中有一个字段,存储的是该Inode被引用的次数,而硬链接则是在目的位置创建该文件的链接,同时将Inode的引用次数+1。

linux在进行文件的删除过程中,会去访问该文件的Inode,将Inode引用次数-1,当Inode的引用次数为0时,彻底删除该Inode,将Inode指向的文件block,即文件在硬盘中占得位置设为可用。

因此,硬链接可以作为重要文件被误删的保证,同时,因为硬链接本身所指向的物理位置和源文件属于同一个,因此,修改任意一个,实际文件都会发生改变。


链接

使用方式:ln -s sourceFile destFile

原理:软连接相当于windows的快捷方式,软连接实际上是一个指向源文件Inode的文件,其中存储了一些文本信息。

因此,修改软连接同样可以达到修改源文件的目的,但是,删除了源文件后,软连接就找不到对应的Inode,也就失效了。


比较

链接修改 :都影响源文件

链接删除:都不影响源文件

源文件删除:硬链接有效,软连接无效


复制文件

复制文件与链接不同,复制实际上创建了一个新的文件,即实际从源文件读取,重新在硬盘中新的block空间写。其block和Inode都是新的。与源文件完全无关。



0 0