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

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

使用链接有什么好处

作为一个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
下一篇 2017-07-23

相关推荐

  • 26期全程班-第六周博客作业

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; # cp /etc/rc.d/rc.sysinit /tmp # vim /tmp/rc.sysinit :%s@^\([[:space:]]\+\)@#\1@g 2…

    Linux干货 2017-03-07
  • RAID简述和Linux软RAID配置

    RAID简述和Linux软RAID配置 PS:仅为课程练习,原理和配置可能有误,仅供参考,谢谢; 1.RAID功能简述     RAID,全称(Redundant Arrays of Inexpensive Disk或Redundant Arrays of Independent Disk),现在一般多用于后面那个称呼,独立磁盘冗余阵列。RAID的基础概念大…

    Linux干货 2016-07-17
  • linux文件权限练习(0803)

    1、当用户xiaoming对/testdir 目录无执行权限时,意味着无法做哪些操作?     不能cd到该目录,不能ls -l查看目录下文件的详细信息      2、当用户xiaoqiang对/testdir 目录无读权限时,意味着无法做哪些操作?…

    Linux干货 2016-08-04
  • 网络N23期第二周心得

    1. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp 文件复制        常用选项:            -i:交互式            -r, -R: 递归…

    Linux干货 2016-12-05
  • 八.Linux博客-2016年8月8日sed、vim

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

    Linux干货 2016-08-24
  • N22-℡浮生.若夢 ╮第七周作业

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; ~]# mke2fs -t mkfs.ext4 -b 2048 -L MYDATA -m 2 /…

    Linux干货 2016-11-14