linux 下的软链和硬链

原创 2016年05月30日 21:44:34

首先理解一下一下inode:Unix/Linux系统内部不使用文件名,而使用inode号码来识别文件。

表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。

1、文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。

这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard link)。

ln命令可以创建硬链接:ln 源文件 目标文件

2、除了硬链接以外,还有一种特殊情况。

文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"(soft link)或者"符号链接(symbolic link)。

这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:"No such file or directory"。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会因此发生变化。

ln -s命令可以创建软链接 ln -s 源文件(或目录)   目标文件(或目录)

参考链接 http://www.ruanyifeng.com/blog/2011/12/inode.html


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

linux ln 命令使用参数详解(ln -s 软链接)

【http://www.jb51.net/LINUXjishu/150570.html】 这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不...

Linux删除软链接

首先我们先来创建一个文件 #mkdir test_chk #touch test_chk/test.txt    #vim test_chk/test.txt (这一步随便在这个test.txt里写点...

linux 创建连接命令 ln -s 软连接

ln 的功能是为某一个文件在另外一个位置建立一个同步的链接 这个命令最常用的参数是-s, 具体用法是:ln -s 源文件 目标文件。   当在不同的目录,用到相同的文件时,可以不需要在每一个需...

linux中的软链(symbolic link)

当前虚拟化技术盛行,不可避免要使用软链,之前使用公司的PaaS平台,也遇到了软链相关的问题应用场景在实例上运行shell脚本,shell进一步调用python脚本通常我的做法是: 1)将python...

Tslib Qt Linux 交叉编译工具链gcc 软 件 环 境 搭 建

用心总结,相互借鉴,共同学习!

Linux下软连接(softlink)和硬连接(hardlink)的区别

通过实际操作来辨别softlink和hardlink的区别: 首先我们在/home/下建立了一个文件source.file [root@wang home]# ll total 8 -rw-r...

嵌入式linux交叉编译工具链

  • 2014年05月15日 20:48
  • 30KB
  • 下载

打造ARM_Linux交叉编译工具链pdf

  • 2017年11月23日 11:57
  • 410KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux 下的软链和硬链
举报原因:
原因补充:

(最多只允许输入30个字)