码迷,mamicode.com
首页 > 系统相关 > 详细

linux中的硬连接和软连接

时间:2015-07-13 12:06:05      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:linux   连接   link   

linux中的硬连接和软连接

背景

linux中的文件主要分3块,
- 真正的数据
- 索引节点号(inode index)
- 文件名

读取文件的顺序是通过文件名,找到对应的inode,然后通过inode找到对应的数据,进行读取。

连接

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

硬连接

硬连接就是将多个不同的文件名指向同一个inode index。这样通过其中的任意一个文件名,都会访问到同一份数据。如下图所示,文件名1,文件名2,文件名3都会通过同一个inode访问到同一份数据。
技术分享

软连接

软连接类似windows中的快捷方式。它不是直接连到源文件的inode上的,而是一个新的特殊的文件,它记录了被连的文件名3的路径。

技术分享

example

?  /tmp  ln -s test test1 #symbolic link 
?  /tmp  ln test test2 #hard link
?  /tmp  ls -l test*
6508253 -rw-r--r--@ 2 deshengkong  wheel  3423  7 10 20:08 test
6534236 -rw-r--r--  1 deshengkong  wheel   103  7 13 10:22 test.php
6544973 lrwxr-xr-x  1 deshengkong  wheel     4  7 13 11:13 test1 -> test # symbolic link 该文件的类型是l(link)
6508253 -rw-r--r--@ 2 deshengkong  wheel  3423  7 10 20:08 test2 # hard link 该文件的文件类型是普通文件

?  /tmp  rm test #delete source file
?  /tmp  cat test1 #symbolic link file找不到源文件,所以报错。
cat: test1: No such file or directory
?  /tmp  cat test2 #hard link file 正常

reference

http://www.cnblogs.com/itech/archive/2009/04/10/1433052.html
http://www.cnblogs.com/joeblackzqq/archive/2011/03/20/1989625.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

linux中的硬连接和软连接

标签:linux   连接   link   

原文地址:http://blog.csdn.net/dia_vampire/article/details/46860859

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!