Linux 硬链接 & 符号链接 & ln [options]

2016-11-30  本文已影响0人  Wavky

索引结构

文件索引(文件名、路径等信息) -> Inode -|-> 数据块

Inode

每个文件拥有唯一的 Inode 索引结点,作为文件存在的唯一标记,存储各项文件属性、权限,记录文件数据的物理存储地址。
Inode 编号仅保证在当前文件系统下唯一,挂载多个文件系统会出现 Inode 编号重复现象。

硬链接

每个硬链接都是一个指向某个文件 Inode 的文件索引别名,新增的硬链接会映射源 Inode 的文件属性信息和 Inode 编号,并将 Inode 的引用数加一。
硬链接与源文件地位相等,不受源文件路径变化影响。
访问硬链接需要源文件访问权限,但不映射源文件及其他硬链接的目录路径。
当文件的引用数为零时,系统将自动删除该文件 Inode 及对应的文件数据。
目录不允许创建硬链接(有可能产生环形目录树结构,无法删除)
硬链接依赖于特定文件系统,不能跨文件系统建立链接。

符号链接(symbolic link, 软链接)

符号链接是一个独立文件,拥有独立 Inode 编号,文件内容为目标文件、目录的地址,新增符号链接不会导致源文件 Inode 引用数增加,相当于 Windows 的快捷方式。
符号链接允许跨文件系统、跨网络独立存在,不依赖于特定文件系统支持。

理解 Linux 的硬链接与软链接 - IBM


ln [options] source... [target]

为源文件创建一个硬链接或符号链接文件

options

-s 创建软链接(默认创建硬链接)
-F 强制模式,如果 target 已作为目录形式存在,则删除该文件夹,需要与 -f 或 -i 搭配使用,判断内部文件的删除方式(不指定时默认使用 -f )
-f 强制模式,如果 target 已作为文件形式存在(非目录),则清除该文件
-i 交互模式,target 文件已存在时执行是否覆盖询问
-h/-n 如果 target 已作为软链接(目录)形式存在,则不进入,通常与 -f 配合使用

target

可选的新建链接文件命名,也可指定一个目录作为链接文件的存储位置(不指定命名时,继承原始文件命名)
当指定 source 源文件多于一个时,target 需要指定为一个用于存放所有链接文件的目录

软链接相关命令

open 打开链接目标文件
stat 显示链接目标文件属性
lstat 显示软链接文件本身的属性
readlink 读取软链接本身的内容

上一篇下一篇

猜你喜欢

热点阅读