ln 软硬链接

链接

在谈软链接与硬链接之前,先来说说文件系统基础知识。

Linux 系统中,一切皆文件。
文件包含两部分:文件属性与权限(inode),文件内容(data-block)。
一个文件可由1个inode与多个block组成。
链接亦可理解为为文件取多个(相同或不相同)名字。

系统中每个目录本身看作一个文件(简称为目录文件),而目录下的每个子目录或一般文件(简称为记录文件)也视为文件。

目录文件拥有一个inode,其block中存储目录所包含文件的文件名及其与文件的关联性
每个记录文件对应一个inode号及N个block块。
注意,文件名并不记录在文件的inode或block中,而是记录在文件所在目录文件的block中。
故文件名的修改删除与目录的w权限有关。
一般情况下,读取文件是从根目录开始的,一层层读取。

接下来,我们来正式谈谈软硬链接的问题。

软硬链接的区别就在于,链接所指向的inode不同。

如为硬链接,目录文件的block,存储的文件关联性会指向源文件的inode;
如为软链接,会在目录下加一条记录文件,独立占用inode与block,
且记录文件block中存储的是源文件的文件名(文件读取时会根据文件名查找文件)。

常用命令

用法:ln [-sf] sourcefile targetfile
参数:
-s 软链接
-f 若目标文件已存在,将目标文件删除后再创建
默认是硬链接。

相关链接

  • 查看文件的链接数: ls -l FILE
  • 查看文件的inode号: ls -l -i FILE
  • 查看系统磁盘的block总数:fdisk -l
  • 查看磁盘的inode与block情况:dumpe2fs /dev/vda1

参考

[1] http://man.linuxde.net/ln

原文地址:https://www.cnblogs.com/lifeinsmile/p/5814569.html