美文网首页
软链接和硬链接

软链接和硬链接

作者: wayyyy | 来源:发表于2017-09-22 00:44 被阅读0次

要理解软链接和硬链接需要首先理解文件系统的原理,这里以EXT2文件系统为例。

Ext2文件系统由3部分组成:

super block

记录此文件系统的整体信息,包括 inode/block 的总量,使用量,剩余量。以及文件系统的格式与相关信息。

inode

一个文件占用一个inode,记录文件的属性和权限等,同时也记录此文件的数据所在的block号码。

block

实际记录文件内容,若文件太大时,会占用多个block。

每个inode和block都有编号,而每个文件都会占用一个inode,同时记录此文件数据所在的block号码。因此,我们知道一个一个文件的inode,也就自然知道这个文件所放置数据的block号码,当然也就能够读出文件的实际数据。

inode/block数据访问示意图.jpg

链接文件

Linux下的链接文件有2种:

hard link(硬链接)

使用命令:ln 源文件 目标文件

我们知道文件名只与目录有关,但是文件内容则与 inode 有关。硬链接就是多个文件名对应同一个inode。

hard link.jpg
  • hard link 只是在某个目录下的 data block多写入一个:文件名->inode,它不会消耗 inode 也不会消耗 block。
  • 它不能跨文件系统
  • 它不能链接到目录
硬链接.png
symbolic link(符号连接,也即是软链接)

使用命令:ln -s 源文件 目标文件

symbolic link 就是在创建一个独立的文件,而这个文件里的数据就是它链接的那个文件的文件名。

symbolic link.jpg symbolic link.png
readlink
  • readlink 命令
    readlink 命令输出符号链接值或指向的源文件名(通常使用的是 -f 参数)


    readlink命令.png
  • readlink函数
    #include<unistd.h>
    ssize_t readlink(const char *path, char *buf, size_t bufsiz);
    
    readlink()会将参数path的符号链接内容存储到参数buf所指的内存空间。
    注意:返回的内容不是以\0作字符串结尾,但会将字符串的字符数返回。
    失败返回 -1,并设置errno

参考资料
1、https://www.cnblogs.com/kwdeblog/p/11413756.html
2、https://blog.csdn.net/qq_41982304/article/details/82263478
3、https://blog.csdn.net/qq_16209077/article/details/51974359

相关文章

  • 硬链接和软链接

    最近的一个项目,做的是开发者平台文件的下载。业务本身没有什么技术难度,但就在项目测试过程中发现,iOS 平台部分文...

  • 软链接和硬链接

    修改硬链接会影响源文件的内容,也会影响软链接的内容;修改源文件也会影响硬链接和软链接; 删除源文件,输入命令:ll...

  • 硬链接和软链接

    在Linux中,文件由两部分组成:用户数据(user data)和元数据(meta data)。用户数据,即文件数...

  • 硬链接和软链接

    硬链接(hard link):ln 源文件名 链接名 文件A是文件B的硬链接,则A的目录项中的inode节点号与B...

  • 软链接和硬链接

    概念 软链接 相当于win创建快捷方式(方便使用,注:删除源文件,则无法继续使用) 硬链接 相当于将原文件拷贝一份...

  • 硬链接和软链接

    一、硬链接(Hard Link)的概念 硬链接也称为实体连接它是在某个目录下新增一笔档名链接到某 inode 号关...

  • 软链接和硬链接

    要理解软链接和硬链接需要首先理解文件系统的原理,这里以EXT2文件系统为例。 Ext2文件系统由3部分组成: su...

  • 软链接和硬链接

    一、软件链接 定义:类似于windows下的快捷方式作用:可以对硬盘空间进行合理分配使用方式:ln -s 源文件 ...

  • 软链接和硬链接

    https://www.ibm.com/developerworks/cn/linux/l-cn-hardands...

  • 软链接和硬链接

    可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名...

网友评论

      本文标题:软链接和硬链接

      本文链接:https://www.haomeiwen.com/subject/edztextx.html