硬链接和软链接的区别

# 硬链接和软链接的区别
## 1、概念
在linux中,链接可分为两种:一种为硬链接,另一种为软链接。
硬链接:ln 源文件 目标文件
软链接:ln -s(soft)源文件 目标文件
### 硬链接
硬链接是指通过索引节点inode来进行链接。
linux系统中每个文件对应一个inode,并且允许多个文件名指向用一个inode。这种情况的文件就成为硬链接。
它的作用之一就是允许一个文件拥有多个入口,防止重要数据误删。

硬链接的原理:

### 软链接
软链接也称为符号链接,相当于windows中的快捷方式。文件类型为L,是一个特殊的文件。文件中包含了另一个文件的路径信息内容。

软链接的原理:


## 2、实验
###实验1:首先创建一个magedufile,可以看到硬链接数为1,通过ln创建一个硬链接magedufile_link,再次通过ls -li,可以发现数字变成2,两个文件第一列inode数量都为33612019。cat硬链接内容与源文件一样。把源文件删除后,link文件依然还在,内容没丢失,链接数变为1。ln不能对目录创建硬链接。

[[email protected] magedu]#ls -l
-rw-r--r--. 1 root root 17 Jul 23 13:38 magedufile
[[email protected] magedu]#cat magedufile 
i am study linux
[[email protected] magedu]#ln magedufile magedufile_link
[[email protected] magedu]#ls -li
total 8
33612019 -rw-r--r--. 2 root root 17 Jul 23 13:38 magedufile
33612019 -rw-r--r--. 2 root root 17 Jul 23 13:38 magedufile_link
[[email protected] magedu]#cat magedufile_link 
i am study linux
[[email protected] magedu]#rm -f magedufile
[[email protected] magedu]#ls
magedufile_link
[[email protected] magedu]#cat magedufile_link 
i am study linux
[[email protected] magedu]#ls -li
total 4
33612019 -rw-r--r--. 1 root root 17 Jul 23 13:38 magedufile_link
[[email protected] ~]#ln Desktop Desktop.bak
ln: ‘Desktop’: hard link not allowed for directory

总结: 
    (1)具有相同inode节点号的多个文件是为互为硬链接文件
    (2)删除硬链接文件或者源文件,文件本身并未被删除
    (3)删除文件的所有硬链接和源文件,文件才真正被删除
    (4)硬链接文件是文件的另一个入口
    (5)硬链接文件可以用rm命令删除
###实验2:创建一个文件,通过ln -s创建软链接后查看发现inode不同,软链接后面跟一个->指向源文件,当删除源文件后,软链接指向发生错误。

[[email protected] app]#echo "i am study linux" >/app/magedudir
[[email protected] app]#ls -l
total 4
-rw-r--r--. 1 root root 17 Jul 23 15:01 magedudir
[[email protected] app]#ln -s magedudir magedudir_slink
[[email protected] app]#ls -li 
total 4
67 -rw-r--r--. 1 root root 17 Jul 23 15:01 magedudir
68 lrwxrwxrwx. 1 root root  9 Jul 23 15:03 magedudir_slink -> magedudir
![](http://i.imgur.com/rA07xhv.png)

总结:
(1)快捷方式,可以通过readlink查看指向
(2)是一个文本文件。里面存放的是源文件的路径,指向源文件
(3)删除源文件,软链接依然存在,但是无法正常指向源文件
(4)失效的时候红底闪烁提示
(5)软链接和源文件是不同类型的文件,也是不同的文件。inode不相同。
(6)删除软链接文件可以用rm命令

## 3、区别
(1)创建方式的不同。默认不带参数的情况下,ln创建的是硬链接,带-s参数创建的是软链接
(2)硬链接文件与源文件的inode相同,而软链接文件的inode与源文件不同
(3)ln不能对目录创建硬链接,但可以创建软链接。
(4)删除文件的软链接文件,对源文件及硬链接文件无任何影响
(5)删除文件的硬链接文件,对源文件及软链接文件无任何影响
(6)删除链接文件的源文件,对硬链接文件无影响,会导致软链接失效
(7)同时删除源文件及其硬链接,整个文件才会被删除
(8)软链接可以跨文件系统,硬链接不可以跨文件系统

##4、附加
###文件的删除原理
文件的删除由两个变量控制:
                     i_link  文件的硬链接数量
                     i_count 引用计数(有一个程序调用就+1)
文件删除的条件:
                     i_link=0 && i_count=0

时间: 2024-08-27 09:21:05

硬链接和软链接的区别的相关文章

硬链接与软链接的区别

随笔参考: 理解 Linux 的硬链接与软链接https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/#icomments 关键字:索引节点 (index node 又称 inode).VFS Linux下的VFS: VFS的作用就是采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统.VFS是一个可以让open().read().write()等系统调用不用关心底层的存储介质和文件系统类型就可以工作的粘合层

Linux文件系统中硬链接和软链接的区别 (转)

建立硬链接命令:ln src-link dest-link建立软链接:ln -s src-link dest-link 1. 硬链接是别名,软链接是快捷方式 2. 硬链接和源链接指向同一个i节点,软链接不同 3. 硬链接不能跨文件系统,而软链接可以 4. 删除硬链接和软链接都不会影响原链接 5. 硬链接只能针对文件,软链接可以针对文件和目录 6.关于 I节点的问题 .硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加 ,只要结点的连接数不是 0,文件就一直存在,不管你删除的是源文件

硬链接和软链接的区别与作用

软链接(符号链接): 1.可以在不同的文件系统中进行,相当于快捷方式 2.删除源文件后,快捷方式将不能链接到源文件 [[email protected] ~]# cd /tmp [[email protected] tmp]# du -sb;df -i    #du -sb是计算整个/tmp目录下有多少 bytes的容量 5329. [[email protected] tmp]# cd [[email protected] ~]# touch rlj [[email protected] ~]

Linux硬链接和软链接的区别

1.硬链接文件和原文件指向同样的数据,两者就像克隆一样,inode号也相同,当删除原 文件时, 硬链接文件仍然存在有效.但硬链接文件不同于文件的复制.应该说硬链接文件的产生只是原文件所 在目录文件的内容发生改变,原文件的数据并没有得到复制,而复制文件,磁盘上有两份数据.简单 说,硬链接就是一个类似于别名的概念.当原来的名字没有了,别名照样可以使用. 2.软连接和windows系统的快捷方式含义一样,软链接和原文件的inode不同,该文件的内容是指 向原文件的路径信息.软链接就好像是指针一样.而硬

Linux - 操作系统查找文件的过程以及硬链接与软链接的区别

例:系统查找文件/var/log/messages的过程 内核知道 / 的inode号,根据这个inode可以查找到 / 对应的的磁盘块,磁盘块内存放有 / 下面的目录以及对应的inode号,接着根据var的inode号找到 var 对应的磁盘块,里面含有log目录对应的inode号,接着根据log的inode号找到log的磁盘块,接着根据message的inode号找到messages对应的磁盘块,即找到messages文件 硬链接 访问同一个文件的2个路径,inode号相同,文件大小相同 软

Linux硬链接与软链接的区别

原文地址:http://blog.51cto.com/1185153405/2092119

linux中的硬链接和软链接

一.ln命令概述 它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间. 二.硬链接和软链接的区别 硬链接:是通过文件系统的inode连接来产生新的文件名,而不是产生新文件 软链接:类似Windows的快捷方式功能的文件,可以让你快速连接到目标文件(或目录) 三.硬链接 语法:ln

实例讲解Linux系统中硬链接与软链接的创建

导读 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接.硬链接与软链接的区别从根本上要从Inode节点说起,下面就以实例讲解Linux系统中硬链接与软链接的创建,来实际看看Linux中两种链接方式的不同. 首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现

RHCE系列之文件管理----硬链接和软链接

Linux 文件系统最重要的特点之一是它的文件链接. 链接是对文件的引用,这样你可以让文件在文件系统中多处被看到. 在 Linux 中,链接可以如同原始文件一样来对待.链接可以与普通的文件一样被执行.编辑和访问.对系统中的其它应用程序而言,链接就是它所对应的原始文件.当你通过链接对文件进行编辑时,你编辑的实际上就是原始文件.切记,链接并不是文件的副本. 在linux系统中,链接可分为两类:一类被称为硬链接(Hard Link),另一类被称为软链接或符号链接(Symbolic Link). 硬链接