Symbolic link and hard link的区别
来源:互联网 发布:ipod怎么删除歌曲mac 编辑:程序博客网 时间:2024/05/16 10:01
转自 http://blog.sina.com.cn/s/blog_636556330100g5x2.html
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
--硬连接
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
【软连接】
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
下面是一些例子:
keney@keney-laptop ~> touch f1
keney@keney-laptop ~> ln f1 f2
keney@keney-laptop ~> ln -s f1 f3
keney@keney-laptop ~> ls -li
1284 -rw-r--r-- 2 keney keney
1284 -rw-r--r-- 2 keney keney
1340 lrwxrwxrwx 1 keney keney
从上面的结果中可以看出,硬连接文件f2与原文件f1的inode节点相同,均为1284,然而符号连接文件的inode节点不同。
keney@keney-laptop ~> echo "I am f1 file" >> f1
keney@keney-laptop ~> cat f1
I am f1 file
keney@keney-laptop ~> cat f2
I am f1 file
keney@keney-laptop ~> cat f3
I am f1 file
keney@keney-laptop ~> rm -f f1
keney@keney-laptop ~> cat f2
I am f1 file
keney@keney-laptop ~> cat f3
cat: f3: No such file or directory
当删除原始文件f1后,硬连接f2不受影响,但是符号连接f1文件无效
依此可见:
1).删除符号连接f3,对f1,f2无影响;2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。
- Symbolic link and hard link的区别
- Symbolic link and hard link的区别(linux)
- Symbolic link and hard link的区别(linux)
- [学习]Symbolic link and hard link的区别(linux)
- Symbolic link 与 Hard link 的区别
- hard link and symbolic link
- Linux Hard link and Symbolic link
- Hard link, symbolic link
- hard link与symbolic link区别
- Hard Link versus Symbolic Link
- Hard link 和 Symbolic link
- What is the difference between symbolic link and hard link?
- ln 命令用法 hard link 与 symbolic link 区别 分析
- link: hard link vs. symbolic link
- 符号链接(symbolic link)和硬链接(hard link)的区别
- 硬链接(hard link)和符号连接(symbolic link)的区别
- 硬链接(hard link)和符号连接(symbolic link)的区别
- 硬链接(hard link)和符号连接(symbolic link)的区别
- jsp与servlet传值方式与跳转
- 《计算机程序的构造与解释》(十五)
- 搜索引擎初探
- UINavigationController导航控制器个人笔记
- 在Ubuntu 14.04 64bit下编译安装rtmpdump并调试输出
- Symbolic link and hard link的区别
- 基本 Oracle 增删改查 --自己总结的
- DllRegisterServer的调用失败,错误代码为0x80040200 (vista、Win7手动注册ocx dll问题)
- 汉诺塔问题
- leetcode: Convert Sorted Array to Binary Search Tree
- jdk的安装
- maven项目管理
- linux私房菜笔记
- 函数调用时函数栈状态分析