为什么系统可执行文件多用相对路径创建链接

为什么系统可执行文件多用相对路径创建链接

使用链接有什么好处

作为一个linux初学者,我们首先要知道,在linux中使用链接的好处是什么。总结下来一共有几个:

  1. 使用链接可以使我们在访问文件时省去一大笔敲文件路径的时间。对于我们运维工程师来说,我们经常要查看某个文件或者访问某个目录,再进行该项工作时,往往需要敲很多路径才能找到我们想访问的文件,创建链接可以让我们不需要知道某个文件的具体路径时什么,便可以直接通过链接去访问该文件,这样便会大大提升我们的工作效率。毕竟谁不愿意早点做完自己的工作,去享受自己惬意悠闲的时光呢。
  2. 使用链接可以帮我们节省硬盘空间。在工作中我们往往需要对一个文件在不同的路径让我们使用,可是每次复制一次文件都会占用一些硬盘空间,可不要小看这些文件,可能刚开始空间的占用并不会太多,随着我们工作的深入,以及服务器的长时间运行,多余的文件会越来越多,说不定某天就会因为存储空间被爆满而宕机,那时候后果就很严重了。而使用链接,就可以帮我们大大减少文件的重复存储,为我们的硬盘瘦身,从而增加我们解决危机的机会。
  3. 使用连接可以帮我们减少效率低下的重复工作。在工作中,如果我们有一个相同的文件,在不同的目录下存储,而有一天需要对文件进行修改,我们需要花费多次找到这些文件进行一一修改,这回大大增加我们的工作繁琐度,降低我们的工作效率,而且多次修改也潜在的增加了文件修改的错误率。而使用链接则会大大提升我们的效率,例如我们给一个文件设了100个硬链接,在需要修改的的时候,只需要修改源文件就好了,而这些链接的和原文件其实时一个东西,这样的话是不是就会大大节省我们的时间呢?

链接的分类以及不同之处

在Linux中链接分为两类一个是硬链接一个就是符号链接(软连接),它们是两类特殊的文件。软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录。硬链接则透过文件系统的inode来产生新档名,而不是产生新档案。

对于Linux来说,它们有着不同的作用,担负着不同的使命。

  • 硬链接与原文件是平等关系,是相同数据的不同名称,之间没有依赖关系,它们指向文件数据,二者所占空间相同。软连接是原文件的一个快捷方式,是不同的一个文件,所占空间不同,而且软连接依赖原文件而存在,如果删除原文件,软连接就会失效。
  • 硬链接创建后文件的链接数会增加(即Inode数量会发生变化),而且和原文件相同。软连接的创建并不会增加文件的链接数(即对Inode值无影响)。
  • 硬链接不支持跨分区创建,而且目录不支持创建硬链接;软连接可以跨分区创建,也可以为目录创建软连接。

小知识:任何目录的节点数至少有两个,由于不能对目录创建硬链接,而软连接又不会增加目录的节点数,所以目录的节点数的多少与其子目录有一定的关系哦,原则上是成正比的。

路径的分类以及不同之处

了解过关于软硬链接的知识后,就让我们一起看一下在Linux中路径是什么,它们有什么不同。

在Linux中文件的路径分为两种一个是绝对路径,即从根目录到文件的完整路径。例如:/home/test/point/last.txt 就是这个last.txt 文件的绝对路径。而相对路径指的是,文件相对当前工作目录所在目录的路径。例如:我现在整理/etc/happy/help.txt文件,现在要找到last.txt这个文件的话就需要进行cat ../../home/test/point/text.txt操作才能看到last.txt文件的内容。而这个../../home/test/point/text.txt便是相对于我现在的工作目录/etc/happy/help.txt而言,文件text.txt的相对目录。

对于相对路径和绝对路径来说它们的不同更多的是从概念上来说的,绝对路径是文件的真正路径,除非文件被移动,绝对路径的表达不会发生变化;而相对路径只是相对于我们当前工作目录而言的文件路径,这个路径的表达是可以不同的。

小知识:相对路径和绝对路径并没有好坏之分,它们有着各自不同的用处,但是系统可执行文件大部分用的是相对路径。

为什么要系统可执行文件多用相对路径创建链接

说了这么多,其实重点在于帮助大家在了解文件路径和链接的基础上更好的了解我们的主题:使用相对路径创建链接!

就拿软链接来说吧,我们用具体的事例来说明这一点。

例如某项工作需要我们为/home/happy/help.txt/home/happy/point/下创建一个软连接。我们分别为其用相对路径和绝对路径创建一个链接,(为了区分,用绝对路径创建的链接成为help.link,用相对路径创建的链接成为HELP.LINK)。具体操作如下:

利用绝对路径创建链接:

为什么系统可执行文件多用相对路径创建链接

利用相对路径创建链接:

为什么系统可执行文件多用相对路径创建链接

这时我们的顶头BOSS让我们把目录/happy移到另一个目录/app下,这时候我们的链接会发生什么变化呢?

为什么系统可执行文件多用相对路径创建链接

可以看到,我们用绝对路径创建的软链接已经失效了,主要是因为它们共同的父目录发生了移动,用绝对路径的链接就会是错误的,而相对路径创建的链接就不会受到影响。因此这也是系统执行文件的链接多用相对路径的原因。

PS:小白投稿,如有错误,欢迎指正。

原创文章,作者:OscaoChaser,如若转载,请注明出处:http://www.178linux.com/82546

(0)
OscaoChaserOscaoChaser
上一篇 2017-07-23 20:53
下一篇 2017-07-23 23:11

相关推荐

  • 第七周作业

    查看作业内容请移步此链接:http://www.cnblogs.com/wangenzhi/p/6403568.html

    Linux干货 2017-02-15
  • 常见的单机虚拟网络类型

    前言:   无论是互联网还是物联网,他们的网络模型都是可以见的,而虚拟化和云计算中的网络模型 要比这些模型要复杂的多,有些设备你是可以到也有一些设备你是看不到的,这给我们运维人员带来的技术挑战。通过学习Xen、KVM虚拟化技术,对单机虚拟网络模型有了初步的认识,以下是我对单机虚拟网络模型的认识。 一、NAT模型    …

    Linux干货 2015-09-01
  • 从Linux小白到大牛——与狼共舞的日子4

    马哥教育网络班21期+第4周课程练习 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -a /etc/skel/ /home/tuser1/ [root@localhost&n…

    Linux干货 2016-08-02
  • 关于大型网站技术演进的思考(十四)–网站静态化处理—前后端分离—上(6)

    原文出处: 夏天的森林  前文讲到了CSI技术,这就说明网站静态化技术的讲述已经推进到了浏览器端了即真正到了web前端的范畴了,而时下web前端技术的前沿之一就是前后端 分离技术了,那么在这里网站静态化技术和前后端分离技术产生了交集,所以今天我将讨论下前后端分离技术,前后端分离技术讨论完后,下一篇文章我将会以网站 静态化技术的角度回过头来…

    Linux干货 2015-02-26
  • Ansible中文权威

    福利贴 运维神器 Ansible 本土化在际,除了每日分享,定期更新外,还有大虾不定期解惑,更多福利可关注  http://www.178linux.com/doc/ansible/  或 扫描二维码入( 372011984 )群关注.

    Linux干货 2015-08-13
  • Sqlserver2012(主从复制)共享同步日志备份恢复

    SQL Server 2012相对于SQL Server 2008来说,无论是性能还是功能都有一个相当大的提高,甚至可以用“革命”来形容这一次升级。SQL Server 2012使 SQL Server 跻身于企业级数据库行列。在数据高可用性方面,SQL Se…

    Linux干货 2015-10-31