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

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

使用链接有什么好处

作为一个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

相关推荐

  • linux的终端类型

    Linux系统的终端类型    Linux系统的终端主要包括控制台终端、控制终端、串口终端、伪终端、虚拟终端。                 1.  控制台终端(/dev/console)。    在Unix系统中,计…

    Linux干货 2016-10-19
  • 九.Linux博客-2016年8月10日脚本、sed、vim

    格式说明: 操作 概念 命令 说明及举例 九 脚本sed、vim sed 文本编辑工具 行编辑器,每次取出一行在内存里处理,处理完成后屏幕打印。完成后再取出一行放到内存里处理,覆盖原来内存中的行,循环。。 sed -n '3d' f1 把文件f1中的第三行删掉并不在屏幕上显示 sed -n…

    Linux干货 2016-08-24
  • 几种常见的linux发行版

    redhat :Red Hat Enterprise Linux,是一个非常强大的服务器系统,超强的生命周期支持10年以上的升级和技术支持同样费用也非常可观8千多一个授权一年。如果没有license是不能在线升级系统,和通过yum安装软件。而centos则没有这些限制,所以centos是非常收欢迎的系统。 centos:是一个社区企业系操系统,其基础架构与r…

    Linux干货 2017-08-19
  • N26-第二周

    一、文件管理类命令 pwd:显示工作目录 cd:切换目录 cd [dir] cd: 切换回家目录;注意:bash中, ~表示家目录; cd ~:切换回自己的家目录 cd ~USERNAME:切换至指定用户的家目录; cd -:在上一次所在目录与当前目录之间来回切换; 相关的环境变量 $PWD:当前工作目录 $OLDPWD:上一次的工作目录 file:查看文件…

    Linux干货 2017-03-07
  • bash进阶学习ing

    使用read命令来接受输入使用read来把输入值分配给一个或多个shell变量: -p 指定要显示的提示 -t TIMEOUT read 从标准输入中读取值,给每个单词分配一个变量所有剩余单词都被分配给最后一个变量read -p “Enter a filename: “ FILE 条件选择if语句选择执行:注意: if语句可嵌套单分支if 判断条件: the…

    Linux干货 2016-08-21
  • Linux之数组

      Linux之数组     数组介绍数组:存储多个元素的连续的内存空间,相当于多个变量的集合。 变量:存储单个元素的内存空间数组名和索引索引:编号从0开始,属于数值索引注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开始支持。bash的数组支持稀疏格式(索引不连续)声明数组:de…

    Linux干货 2016-08-25