Linux 下的文件链接有两类。一个是类似于 win 电脑的快捷方式,我们称为软链接,软链接也可以叫做符号链接。另一种是通过文件系统的 inode 连接来产生的,类似于 windows 电脑的复制,但是不产生新的文件,我们称为硬链接。硬链接也可以称作为实体链接。
一、索引节点
inode 也叫做索引节点,内核为每一个新创建的文件都会分配一个索引节点,就是inode 。inode是用来存放文件信息的,每个文件都会占用一个 inode ,并且这个 inode 号是唯一的
二、硬链接
硬连接是一个新的链接到某个 inode 号码的记录。这个链接指向 inode ,系统并不给他从新分配inode 。也就是说会有多个文件对应同一个 inode ,如果两个文件的 inode 一样,那么这两个文件就是完全一样的。可以用 ln 命令来建立硬链接。
格式: ln 源文件 目标文件
常用参数 -f ,就是说强制创建,无论目标文件是否存在都要创建连接。
我们使用命令 touch test1.c 创建文件 test1.c,然后使用 ln test1.c test2.c 创建一个硬链接,然后用 ls -li 命令来查看下,如下图所示。
三、软链接
这类似于 windows 上的快捷方式。可以用 ln 命令来建立软链接。
格式: ln -s 源文件 目标文件
(必须加上-s 参数,使用 ln 如果不加任何参数的话,那么就是硬链接 ,而且源文件要用绝对路径)
-s 为创建一个软连接。源文件必须使用绝对路径,不能使用相对路径
例如我们要创建一个test3.c文件,它是一个链接文件,链接指向test1.c文件
ln -s /home/z/桌面/myshare/test1.c test3.c