linux 软链接与硬链接

https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html
- 这里对linux文件系统作了很全面的解释,简而言之,linux文件数据的唯一标识是inode号包含在元数据(metadata)中,文件系统包含一个(我猜是hash表)索引提供文件路径的方式访问真正的userdata。
- 当我们通过文件名访问文件时,linux会先查找到inode号对应的metadata,再进行一系列操作。

硬链接

硬链接是一个inode标示文件的不同别名
可以使用ls -i 和stat来查看元数据

创建方法:

 # ln  old.file hard.link  //或者 link old.file hard.link
 ls -li 
 total 8 
 660650 -rw-r--r-- 2 root root 25 Sep  1 17:44 hard.link 
 660650 -rw-r--r-- 2 root root 25 Sep  1 17:44 old.file 
  • 硬链接文件具有和源文件相同的 inode和datablock;
  • 只能对已存在的文件创建硬链接;
  • 不能交叉文件系统创建硬链接;
  • 不能对目录创建硬链接(. .. 这两个除外);
  • 删除硬链接只是将对应的inode指向文件的metadata中的link字段减一;
  • 文件权限完全相同;

软链接

转链接是一个普通文件,数据块的内容是另一个文件的路径

示例:

 # ln -s old.file soft.link 
 # ls -liF 
 total 0 
 789467 lrwxrwxrwx 1 root root 8 Sep  1 18:00 soft.link -> old.file 
  • 可以对不存在的文件或目录创建软连接
  • 指向目标不存在的软链接成为死链接
  • 软链接文件有这自己的inode号和独立的权限;

你可能感兴趣的:(linux)