Ⅰ linux 硬链接和软链接的区别
为解决文件的共享使用,Linux系统引入了两种链接:硬链接和软链接。在Linux中,元数据中的inode号才是文件的唯一标识而非文件名,文件内容要通过inode号来寻找,犹如交通指示牌一样,指示着数据找寻的方向。
硬链接(Hard Link)
A和B的硬链接,则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除其中一个,对另外一个没有任何影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。
注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块只有在inode节点链接数减少为0的时候才会被系统回收。
软链接(Soft Link)
A是B的软链接,A的目录项中的inode节点号与B的目录项中的节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。但是A的数据块中存放的只是B的路径名。A和B之间是主从关系,如果B被删除了,A依然存在,但指向的是一个无效的链接。
Linux中软链接和硬链接的区别和联系:
概念不同:
软链接可以理解成快捷方式,和原文件的inode号不一样,它和Windows下的快捷方式的作用是一样的,软链接数据块中记录的亦是相对路径指向。
硬链接和原文件对应一个inode,就是对应一个文件,可以理解成一个文件有几个别名。
用法不同:
软链接可以理解成快捷方式,也清楚知道原文件在哪里。它和Windows下的快捷方式的作用是一样的,和Windows一样,删除源文件,快捷方式也就无法使用了。
硬链接可以看成一个备份,但并没有增加空间,因为文件就一个,这种可以防止源文件删除后不能使用问题;同时也有局限性,不能对目录和跨文件系统使用。
语法格式(ln):
硬链接:ln 源文件 链接名
软链接:ln -s 源文件 链接名
注意:链接的源文件路径要写绝对路径,否则会报错。
Ⅱ linux怎么将硬链接指向目录
首先linux不能将硬链接指向目录,硬连接自然你要先考虑软连接跟硬连接区别,软连接就相当于我们win中的快捷方式即如果你软连接一个目录只是一个目录的快捷方式到指定位置,操作系统找这个快捷方式会直接找到真实目录下的文件。但是硬连接的话,相当于镜像的方式,你创建一个目录的硬连接之后,操作系统需要把这个目录下所有的文件都要做一次硬连接(复制一份过去),这样操作系统在访问这个链接的时候要不断去遍历,大大增加复杂度,而且很容易进入死循环。现在linux没有很好支持这个 所以 不支持。
Ⅲ linux中,什么是连结档,链接,链接目录
linux硬链接与软链接
Linux链接概念
Linux链接分两种,一种被称为硬链接(HardLink),另一种被称为符号链接(SymbolicLink)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。
1).删除符号连接f3,对f1,f2无影响;
2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。可参考《Linux就该这么学》了解更多Linux知识。
Ⅳ linux给文件创建硬链接
在了Linux下创建硬连接和软连接(也就是符号连接)都是用ln命令,当使用ln命令时加上-s选项就表示创建的连接文件是一个软连接,如果使用ln命令时不带-s选项就表示创建的是一个硬连接。而ln命令的格式则是:ln 原文件 连接文件
比如如下命令是创建硬连接的,/home/testfile就是创建的硬连接文件,它连接到/root/testfile这个文件:
ln /root/testfile /home/testfile
下面的则是创建软连接的,这次/home/testfile是一个软连接文件:
ln -s /root/testfile /home/testfile
Ⅳ linux为什么不能硬链接目录
符号连接(软连接)到一个目录只是建立了一个新文件,而这个连接文件相当于原目录的“快捷方式”。但是硬连接本身并不是一个实际的文件,只是在它所在的目录下多了一条文件名记录而已,这个文件名对应到原文件的inode,记住,它是和inode关联的,而inode是和文件的内容相关,所以一个硬连接只能对应一个文件。如果想让一个硬连接到一个目录,就只能对这个目录下的所有文件都建立硬连接,如果将来这个目录下又有新文件了,就又要创建硬连接,所以说对目录建立硬连接太复杂了,Linux目前是不支持硬连接目录的,这是硬连接的原理所决定的。
Ⅵ Linux中硬链接文件和软链接文件有什么区别
linux系统中链接文件分为硬链接和软链接(软链接也叫符号链接)。硬链接和软链接都是指向文件的一种方式,但两者有不同的地方,主要有以下不同:
1.硬链接是创建一个指向block的inode,有防止误删除的功能。因为删除一个文件,实际上是删除inode信息,切断了inode与block之间的联系。当给一个文件做了硬链接之后,删除文件时,只会减少文件的链接数,当链接数为0时,才会彻底删除该文件。
软链接类似windows系统的快捷方式,是一个完整的文件,有自己的inode和block,block的内容就是原文件的文件名。当原文件删除后,软链接就失效了,没有防止误删除的功能。
2.文件的大小不一样。由于硬链接是指向原文件的block,所以硬链接的文件大小和原文件大小是一致的。而软链接是新的文件,block里是原文件的的文件名,所以软链接文件的大小一般是4k,即一个block的大小。
3.硬链接不能给目录做,不能跨分区做。软链接则都可以。
创建硬链接命令:
ln
file
filenew
#file为原文件名,filenew为新文件名。
创建软链接命令:
ln
-s
file
filenew
#file为原文件名,filenew为新文件名。
Ⅶ Linux下软链接和硬链接的区别是什么
要深入理解软链接和硬链接,那么得先理解文件系统;
所以我只能粗略解释下软链接和硬链接;
硬链接:大小和block以及inode号都相同; 那么说明他们根本就是同一个文件; 打个比方: 从上海坐飞机去北京, 飞机可以直飞北京, 也可以先去纽约转一圈到北京, 这个就不同的飞行路线就是路径, 但是目的都是相同的---北京(文件位置);;;
软链接: 大小和block以及inode号都不同, 那么说明他们根本就不是同一个文件, 那么软链接存放的是什么呢? 存放的就是如何从上海到北京的路线(比如是从上海到纽约然后目标是北京的路线); 所以它得先到上海然后才能坐飞机到北京;
从上面的飞机例子中可以得出一个特性: 硬链接必须是上海到北京; 即: 必须是同一个文件系统;
软件可以是其他地方到上海然后坐飞机到北京; 可以他可以在不同的文件系统;
stat filename 这个命令记住; 看看Inode号, 就能知道硬链接和软链接是什么了; Inode对于文件系统非常重要; Inode是一个文件的元数据, 如果相同的; 那么根本就是同一个文件;;;
所以硬链接不是文件的复制2份; 说实话我不知道快捷方式的原理, 因为我没有去解读过NTFS文件系统; 所以软链接是不是快捷方式我不好说, 但是软链接其实就是存放着另一个文件的路径的文件;;
Ⅷ linux怎么将一个文件夹链接到另一个文件夹上
ln -s bbb的文件目录 ccc的文件目录
In的功能是为某一个文件在另外一个位置建立一个同步的链接,命令最常用的参数是-s,具体用法是:
ln -s 源文件 目标文件
-s 是 symbolic的意思。
ln的链接有软链接和硬链接两种。
软链接就是ln -s ** **,只会在选定的位置上生成一个文件的镜像,不会占用磁盘空间。
硬链接ln
** **,没有参数-s,在选定的位置上生成一个和源文件大小相同的文件。
无论是软链接还是硬链接,文件都保持同步变化。软链接是可以跨分区的,但是硬链接只能在同一分区内。
(8)linux目录硬链接扩展阅读:
1、目录不能建立硬链接,但可以建立软链接。
ln-s
test_chk test_chk_ln
2、正确的删除方式(删除软链接,但不删除实际数据):
rm -rf ./test_chk_ln
3、错误的删除方式:
rm -rf ./test_chk_ln/ (这样就会把原来test_chk下的内容删除)
4、用ls查看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件。用ls
-l命令去查看,就可以看到显示的link的路径。
Ⅸ 怎么理解linux中的硬链接在实际工作中怎么用
建立硬链接就是相当于给一个文件起别名。类比实际生活中,就像是给某个人取绰号。虽然硬链接名和源文件不一样,但是二者都是指向同一个硬盘中的资源。硬链接在实际工作中应用远没有软连接多:1)想让一个文件在多个目录下重复出现,但只占用一份文件的空间,就用硬链接。2)针对一块资源,如果想给不同的用户开不同权限,就用硬链接(结合修改权限的chmod命令即可)。
硬链接也是使用ln命令,举例:ln info info_h, 就是给源文件info创建了一个名为info_h的硬链接。
现在我也在黑马程序员当老师,这方面都可以咨询。官网视频库也有这些资料的视频介绍。
Ⅹ linux 什么是硬链接
硬链接(hard link):A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。