硬链接与软链接

272 阅读1分钟

简介

在linux中一般包含两种链接

  • 硬链接 (hard link)
    • inode相同
    • 不能链接目录,可以链接多个文件
    • 链接数据会变化
    • 删除源文件不会影响链接文件
    • ln file[file2 file3] targetfile(targetDir)
  • 软链接(符号链接) (symbolic link)
    • inode不同
    • 可以链接不同的文件系统、目录(绝对路径)
    • 文件属性标明出是软链接
    • 链接数目不变
    • 有链接次数限制
    • 软链接文件大小与源文件不一样
    • 删除源文件链接文件不可用
    • ln -s file[file2 file3](sourceDir) targetfile(targetDir)

例子

ls -il

两种链接区别

可看到hard与hardlink的inode值一样说明是同一个文件;而soft与softlink不是同一个文件。
软链接会显示指向文件,两文件的链接数也不一样。
编辑任一文件都会影响到链接到的文件。


索引节点(inode):在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号,我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。系统是通过索引节点(而不是文件名)来定位每一个文件。