打印

【Linux基础】Linux硬链接简介

[复制链接]
6154|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cooldog123pp|  楼主 | 2021-9-25 19:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、Linux硬链接简介

  Linux下的文件是通过索引节点(Inode)来识别文件的,硬链接可以认为是一个指向文件索引节点的指针,系统并不为它重新分配inode。就像一个文件有多个文件名,每添加一个硬链接,文件的链接数就加1。

  硬链接文件有两个限制

  1)、不允许给目录创建硬链接;

  2)、只有在同一文件系统中的文件之间才能创建硬链接。

  二、Linux硬链接命令格式

  Linux硬链接的命令格式如下所示:

  ln [options] existingfile newfile

  ln [options] existingfile-list directory

  说明:

  第一种格式是为”existingfile”创建硬链接,硬链接的文件名为”newfile”。

  第二种格式是在”directory”目录中,为 ”existingfile-list”中包含的所有文件创建一个同名的硬链接。

  常用选项[options]

  -f 无论”newfile”存在与否,都创建链接。

  -n 如果”newfile”已存在,就不创建链接。

  三、Linux硬链接使用举例

  Linux硬链接使用示例如下所示:

  #ll -il

  total 0

  1069026 -rw-r--r-- 2 root root 0 Dec 25 21:30 file1

  1069029 -rw-r--r-- 1 root root 0 Dec 25 21:29 file2

  #ln file2 file2hard

  #ll -il

  total 0

  1069026 -rw-r--r-- 2 root root 0 Dec 25 21:30 file1

  1069029 -rw-r--r-- 2 root root 0 Dec 25 21:29 file2

  1069029 -rw-r--r-- 2 root root 0 Dec 25 21:29 file2hard

  说明:

  在上面的例子中,创建链接前,file1 显示的链接数目为1;

  创建链接后,

  1)file1和file1hard的链接数目都变为2;

  2)file1和file1hard在inode号是一样的;

  3)file1和file1hard显示的文件大小也是一样;

  file1和file1hard是同一个文件的两个名字,具有同样的索引节点号和文件属性。

  建立文件file1的硬链接,就是为file1的文件索引节点在当前目录上建立一个新指针。

  你可以删除其中任何一个,如rm file2 ,但每次只会删除一个指针,此时链接数减一,只有将所有指向文件内容的指针,也即链接数删为0时,内核才会真正把文件内容从磁盘上删除。

  因此,硬链接可以算是为文件上了一个保险,用RM命令删除建立了硬链接的文件时,并不会真正的将文件删除掉,从而减小了误删的风险。

  四、Linux硬链接的缺点

  虽然硬链接十分实用,但却有如下两个缺点:

  1)不可以在不同文件系统的文件间建立链接。

  2)只有超级用户才可以为目录创建硬链接。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1839

主题

6423

帖子

30

粉丝