软连接和硬链接的区别

上传人:汽*** 文档编号:562386259 上传时间:2024-01-11 格式:DOCX 页数:8 大小:23.21KB
返回 下载 相关 举报
软连接和硬链接的区别_第1页
第1页 / 共8页
软连接和硬链接的区别_第2页
第2页 / 共8页
软连接和硬链接的区别_第3页
第3页 / 共8页
软连接和硬链接的区别_第4页
第4页 / 共8页
软连接和硬链接的区别_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《软连接和硬链接的区别》由会员分享,可在线阅读,更多相关《软连接和硬链接的区别(8页珍藏版)》请在金锄头文库上搜索。

1、linux硬链接和软链接的区别简而言之,软链接相当于windows中的快捷方式,硬链接相当于一个灾备系统,数 据存放在两处,与复制不同的是两处之间存在同步机制,一处数据的改变会实时同步到另一处,另外,一处数 据如果被删除了,不会影响到另一处的数据.下面是详细的介绍:硬连接指向的是节点(inode),是已存在文件的另一个名字,修改其 中一个,与其连接的文件同时被修改;对硬链接文件进行读写和删除操作时候,效果和软链接相同。但如果我们删 除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容。这时,系统就“忘记”了它曾经 是硬链接文件,而把他当成一个普通文件。 硬链接文件有两个限制:1、不允

2、许给目录创建硬链接;2、只有在同一文件系统中的文件之间才能创建链接。软连接指向的是路径(pa th),软链接又叫符号链接,这个文件包含了 另一个文件的路径名。可以是任意文件或目录,还可以链接不同文件系统的文件,和win下的快捷方式差不多。 软链接文件甚至可以链接不存在的文件,这就产生一般称之为断链的问题(或曰“现象),链接文件 甚至可以循环链接自己,类似于编程语言中的递归。命令格式:ln -s source_path target_path /软链接文件Source为源文件target为目标文件。ln-dexistfilenewfile /硬链接文件,如果不加任何参数,默认情况下就 是硬链接.

3、Newfile 为不是自己建的系统建的。示例:$ ln httpd.conf httpd1.conf$ ln -s httpd.conf httpd2.conf 第一条为硬链接,第二条为软链接$ ls -li/查看一个文件或目录的inode,要通过ls命令的的-i参数,inode值相同的文件,他们的关系是互为硬链接的关系总用量 801077669-rw-r-r-2samadm34890 10月 3100:57 httpd1.conf1077668lrwxrwxrwx1samadm10 10月31 00:58httpd2.conf -;httpd.conf1077669-rw-r-r-2sama

4、dm34890 10月 31 00:57 httpd.conf可以看到,使用ls-li,软连接只产生了 10字节的快捷而已,硬连接却实实在 在的的拷贝。最前面的 inode硬链接和源文件是一样的,而软链接不一样.对http1.conf进行编辑,可 以发现httpd.conf也发生了一样的变化.现在使用命令:$ rm httpd.conf现在删除链接的源文件,来比较不同之处代码:$ ls -l总用量 44-rw-r-r-1 samadm34890 10月31 00:57 httpd1.conflrwxrwxrwx1samadm1010月 31 00:58 httpd2.conf -; httpd

5、.conf发现,httpd2.conf实际已经不存在了,是断链,而httpd1.conf变也了普通文 件.、硬链接 硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。 可以用:ln命令来建立硬链接。语法: ln options existingfile newfile lnoptions existingfile-list directory用法:第一种:为existingfile创建硬链接,文件名为newf ile。第二种: 在directory目录中,为existingfile-list中包含的所有文件创建一个同名的硬链接。常用可选 options - f 无论 n

6、ew file存在与否,都创建链接。-n如果newfile 已存在,就不创建链接。下面举一些例子:$ ls - il13058 -rwx 113059 -rwx 1$ ln file2 file2hard$ ls - il13058 -rwx 113059 -rwx 213059 -rwx 2longcheng longcheng longcheng longchenglongcheng longcheng longcheng longcheng longcheng longcheng48 8月 5 16:38 file157 8月 5 16:40 file248 8月 5 16:38 fil

7、e157 8月 5 16:40 file257 8月 5 16:40 file2hard注意在创建链接前,filel显示的链接数目为1,创建链接后(l)f ilel和 filelhard的链接数目都变为2;(2) filel和filelhard在inode号是一样的(3) filel和filelhard显示的文件大 小也是一样。可见进行了 ln命令的操作结果:filel和filelhard是同一个文件的两个名字,它们具有同样的 索引节点号和文件属性,建立文件filel的硬链接,就是为filel的文件索引节点在当前目录上建立一个新 指针。如下图,你可以删除 其中任何一个,如rm file2,每次

8、只会删除一个指针, 链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时,内核才 会把文件内容从磁盘上删除。还可以在不同目录,但同一文件系统中建立文件的硬链接。设filel、file2在目录/home/longcheng/dir1中,下面的命令,在/home/longcheng中建立file2的硬链接。ln file2 /home/longcheng/file2hard下面的程序,是将dir1 目录中所有文件,在目录dir2中建立硬链接$mkdir dir2$ln /home/longcheng/dirl/* /home/longcheng/dir2如果使用了 ln -f exis

9、tingfile newfile,如果newfile已经存在,则无论原 来newfile是什么文件,只用当前用户对它有写权限,newfile就成为exisitngfile的硬链接文件。尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一下 不足之处:(1)不可以在不同文件系统的文件间建立链接(2)只有超级用户才可以为目录创建硬链接。 虽然很多树上说root用户可以创建,但是笔者在学习过程中发现即使是root用户也不能创建,我的系统 是 Redhat,内核 2.4、2.6都试过,在其他系统中不知道是不是可以。二、软链接(符号链接) 软链接克服了硬链接的不足,没有任何文件系统的

10、限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对 文件进行链接。建立软链接,只要在ln后面加上选项-s,下面举个例子$ ls -il13058 -rwx 1longchenglongcheng488月516:38file113059 -rwx 2longchenglongcheng578月516:40file213059 -rwx 2longchenglongcheng578月516:40file2hard$ln - s filel filelsoft$ls -il13058 -rwx llongchenglongcheng4

11、88月5l6:38filel13059 -rwx 2longchenglongcheng578月5l6:40file2l3059 -rwx 2longchenglongcheng578月5l6:40file2hard l306l lrwxrwxrwx l longcheng longcheng 5 8月 5 l6:58 filelsoft-filel 从上面链接后的结果可以看出来软链接与硬链接,区别不仅仅是在概念上,在实 现上也是不同的。区别:硬链接原文件&链接文件公用一个inode号,说明他们是同一个文件,而 软链接原文件链接文件拥有不同的inode号,表明他们是两个不同的文件;在文件属性上

12、软链接明确写 出了是链接文件,而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;链接数目是 不一样的,软链接的链接 数目不会增加;文件大小是不一样的,硬链接文件显示的大小是跟原文件是一样的,这用强调,因为是等 同的嘛,而这里软链接显示的大小与原文件就不同了,file1大小是48B,而 file1soft是5B,这里面的5实 际上就是“file1”的大小。总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他 是个链接文件,它读取链接文件找到真正要访问的文件。在不同系统之间建立软链接、对目录建立链接,这里就不举例了,读者可以自己 去尝试,我也是在不断实践中学习的。

13、当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所 以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷, 你想怎么移就怎么移; 还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径linux软连接和硬链接的区别软连接可以 跨文件系统 ,硬连接不可以 。实践的方法就是用共享文件把 windows 下的 aa. txt文本文档连接到linux下/root目录 下bb,cc . ln -s aa. txt /root/bb连接成功。 ln aa. txt /root/bb 失败。(2)关于I节点的问题。硬连接不管有多少个,都指

14、向的是同一个I节点,会把结点连 接数增加,只要结点的连接数不是 0,文件就一直存在,不管你删除的是源文件还是连 接的文件。只要有一个存在,文件就 存在(其实也不分什么源文件连接文件的,因为 他们指向都是同一个I节点)。当你修改源文件或者连接文件任何一个的时候,其他的文 件都会做同步的修改。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为 指针。所以删除连接文件对源文件无影响,但是删除源文件,连接文件就会找不到要指 向的文件。软链接有自己的inode,并在磁盘上有一小片空间存放路径名.(3)软连接可以对一个不存在的文件名进行连接。(4)软连接可以对目录进行连接。备注:I节点:它是UN

15、IX内部用于描述文件特性的数据结构.我们通常称I节点为文件索引 结点(信息结点)i节点含有关于文件的大部分的重要信息,包括文件数据块在磁盘上的地 址每一个I节点有它自己的标志号,我们称为文件顺序号.I节点包含的信息1.文件类型2. 文件属主关系 3.文件的访问权限 4.文件的时间截.linux系统下提供ln指令来进行文件链接。文件链接主要分为硬链接和软链接。硬链接:由于linux下的文件是通过索引节点(Inode)来识别文件,硬链接可以认为 是一个指针,指向文件索引节点的指针,系统并不为它重新分配inode。每添加一个一个硬 链接,文件的链接数就加1。可以用:ln命令来建立硬链接。语法:ln options existingfile newfile lnoptions existingfile-list directory用法:第一种:为” existingfile”创建硬链接,文件名为” newf

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号