问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

符号链接与硬链接的区别?

发布网友 发布时间:2022-04-20 03:28

我来回答

5个回答

热心网友 时间:2023-07-05 22:58

首先要弄清楚,在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。
链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。
一、硬链接
硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。语法:
ln [options] existingfile newfile
ln[options] existingfile-list directory
用法: 第一种:为”existingfile”创建硬链接,文件名为”newfile”。第二种:在”directory”目录中,为”existingfile-list”中包含的所有文件创建一个同名的硬链接。常用可选[options] –f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接。
下面举一些例子:
$ ls –il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 1 longcheng longcheng 57 8月 5 16:40 file2
$ ln file2 file2hard
$ ls –il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
注意在创建链接前,file1 显示的链接数目为1,创建链接后(1)file1和file1hard的链接数目都变为2;(2) file1和file1hard在inode号是一样的(3) file1和file1hard显示的文件大小也是一样。可见进行了ln命令的操作结果:file1和file1hard是同一个文件的两个名字,它们具有同样的索引节点号和文件属性,建立文件file1的硬链接,就是为file1的文件索引节点在当前目录上建立一个新指针。如下图,你可以删除其中任何一个,如rm file2 ,每次只会删除一个指针,
链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时,内核才会把文件内容从磁盘上删除。当前目录逻辑结构:(不好意思图没有显示出来)。
还可以在不同目录,但同一文件系统中建立文件的硬链接。设file1、file2在目录/home/longcheng/dir1中,下面的命令,在/home/longcheng中建立file2的硬链接。
ln file2 /home/longcheng/file2hard
下面的程序,是将dir1目录中所有文件,在目录dir2中建立硬链接
$mkdir dir2
$ln /home/longcheng/dir1/* /home/longcheng/dir2
如果使用了 ln –f existingfile newfile,如果newfile已经存在,则无论原来newfile是什么文件,只用当前用户对它有写权限,newfile就成为exisitngfile的硬链接文件。
尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一下不足之处:(1)不可以在不同文件系统的文件间建立链接(2)只有超级用户才可以为目录创建硬链接。虽然很多树上说root用户可以创建,但是笔者在学习过程中发现即使是root用户也不能创建,我的系统是Redhat,内核2.4、2.6都试过,在其他系统中不知道是不是可以。
二、软链接(符号链接)
符号链接是对一个文件的间接指针。硬链接直接指向文件的i节点。
软链接克服了硬链接的不足,没有任何文件系统的*,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。
建立软链接,只要在ln后面加上选项 –s,下面举个例子
$ ls -il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
$ln –s file1 file1soft
$ls -il
13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2
13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard
13061 lrwxrwxrwx 1 longcheng longcheng 5 8月 5 16:58 file1soft->file1
从上面链接后的结果可以看出来软链接与硬链接,区别不仅仅是在概念上,在实现上也是不同的。区别:硬链接原文件&链接文件公用一个inode号,说明他们是同一个文件,而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;在文件属性上软链接明确写出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;链接数目是不一样的,软链接的链接数目不会增加;文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的,这用强调,因为是等同的嘛,而这里软链接显示的大小与原文件就不同了,file1大小是48B,而file1soft是5B,这里面的5实际上就是“file1”的大小。
总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。
在不同系统之间建立软链接、对目录建立链接,这里就不举例了,读者可以自己去尝试,我也是在不断实践中学习的。
当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。补充一下:可以通过symlink来查看链接文件,可以用 man symlink来学习。

热心网友 时间:2023-07-05 22:58

1. 硬链接(hard link) :
在Linux文件系统中,多个文件名指向同一个索引节点(inode)。这种情况文件就称为硬链接。硬链接文件就相当于文件的另外的一个入口。
2.软链接(symbolic link):
软连接又叫做符号链接,它几乎可以等价于windows下的快捷方式;
软连接知识:
软连接类似window的快捷方式(可以通过readiink查看其指向)
软连接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体
删除源文件,软连接文件依然存在,但是无法访问指向的源文件路径内容了
失效的时候一般是白字红底闪烁提示
执行命令“ln -s 源文件 软连接文件”,即可完成创建软连接(目标不能存在)
软连接和源文件是不同类型的文件,也是不同的文件,inode号也不相同
软连接文件的文件类型为(l),可以用rm命令删除

热心网友 时间:2023-07-05 22:59

先明白文件是被索引节点指着的。
符号连接(硬链接):又创造了一个指向这个文件的索引节点。
软连接:一个路径(就是一串字符串,说明了这个文件索引的位置),并没有真正指向文件的指针。

热心网友 时间:2023-07-05 22:59

可以用下面的图来简易 的表示符号链接和硬链接的区别:

源图片:http://book.51cto.com/art/201005/199721.htm

热心网友 时间:2023-07-05 23:00

简单的说:硬连接记录的是目标的 inode,符号连接记录的是目标的 path。
软连接就像是快捷方式,而硬连接就像是备份!符号连接可以做跨分区的 link;而 硬连接由于 inode 的缘故,只能在本分区中做 link.所以,符号连接的使用频率要高的多。
黑马程序员有符号链接和硬链接全部区别的讲解文章,是他们技术老师更新的,我当初也关注过这种问题。你可以去黑马程序员社区或者官网找找去。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我小弟要当兵,这几天在等家访,我想问一下需要拿钱之类的吗?_百度知 ... 怎样治好气管炎 怎么治好气管炎 气管炎能彻底治好吗 分手后再遇见前男友是什么感受? 分手后与前任再相遇 指弹怎么练 用吉他练指弹有什么快速入门的办法 皖西学院新生住哪里 皖西学院的宿舍条件好吗? linux设备文件和链接文件的区别是什么 12306哪个SB设计的 linux中软链接和硬链接的区别是什么?麻烦说细点、... linux 软连接和硬链接的区别 友环(LinkSoft)公司 有谁了解? 软连接和硬链接分别是什么意思,怎么个接法啊? 如何评价微软高级工程师痴迷于soft link这一linux... softlinkDP头能在西门子上用吗 什么是软连接? 欧辰plc softlink 300 怎么样 Softlink Profibus 300 972-0BA12与西门子的6ES7 9... linux/unix中soft link和hard link的区别是什么? linux/unix中soft link和hard link的区别是什么 微信公众平台如何更换邮箱 <士兵突击>中成才是怎么被淘汰的?? 《士兵突击》中,袁朗不喜欢成才的原因是什么? 《士兵突击》曾经刷了很多遍,当时为什么老A袁朗死... 微信公众号如何改绑qq邮箱 五年级下册语文,数学,新课堂AB卷[配人教版]全题,... 同步单元测试ab卷人教版数学五年级下册第三单元测... 在linux中,使用cp命令如何创建文件的软链接与硬链... 老板要用一个网络的办公软件,就是用来办公的那种... Linux文件系统中硬链接和软链接的区别 softLink.dll文件出错 怎么解决? 什么是符号链接 软链接和硬链接的区别 ps怎么出二寸照片 photoshop怎样制作二寸照片 ps 2003 制作二寸照片步骤 用ps制作二寸照片排版 怎样制作2寸照片电子照片 ps制作一寸及二寸照片,标准尺寸及分辨率,及具体步骤 怎么用PS cs5制作一寸二寸的照片 photoshop做2寸照片怎么做 怎么用photoshop生成二寸照片 北京有名气的西餐厅有哪些,档次高一点的,提供的越... 西餐厅经营理念 临沂哪家的西餐厅好? 如何经营西餐厅 关于西餐厅的管理与经营