Linux相对路径和绝对路径的使用

  


  

  

绝对路径和相对路径在壳环境中经常遇到,各有用处。有时候相对路径比较方便,有时候绝对路径比较方便。

  


  

  

绝对路径必定由* */* *开头

  

绝对路径是为档案/文件的所在位置做指向

  

在任何时候,都可以用绝对路径来找到我们想要的文件

  

举例说明

        示例一:/home/deng      示例二:/usr/share/man   之前      


  

  

相对路径不由* */* *开头

  

相对路径是相对于现在目前所在的位置,为目的地指向

  

通常相对路径比绝对路径短一点,可以当成我们迅速找到文件/档案的捷径

        示例一:   . ./测试/itcast      示例二:/测试。      之前      


  

  

那么相对路径与绝对路径有什么了不起呀?喝!那可真的是了不起了!假设你写了一个软件,这个软件共需要三个目录,分别是等,本,人这三个目录,然而由于不同的人喜欢安装在不同的目录之下,假设甲安装的目录是/usr/local/packages/etc,/usr/local/packages/bin及/usr/local/packages/man,不过乙却喜欢安装在/home/packages/etc,/home/packages/bin,/home/packages/man这三个目录中,请问如果需要用到绝对路径的话,那么是否很麻烦呢?是的!如此一来每个目录下的东西就很难对应的起来!这个时候相对路径的写法就显的特别的重要了!

  

此外,如果你跟鸟哥一样,喜欢将路径的名字写的很长,好让自己知道那个目录是在干什么的,例如:/集群/行动/输出/taiwan2006/烟这个目录,而另一个目录在集群/行动/输出/taiwan2006/cctm,那么我从第一个要到第二个目录去的话,怎么写比较方便?当然是cd…/cctm比较方便罗!对吧!

  


  

  

但是对于文档名的正确性来说,“绝对路径的正确度要比较好~”。一般来说,鸟哥会建议你,如果是在写程序(shell脚本)来管理系统的条件下,务必使用绝对路径的写法。怎么说呢?因为绝对路径的写法虽然比较麻烦,但是可以肯定这个写法绝对不会有问题。如果使用相对路径在程序当中,则可能由于你运行的工作环境不同,导致一些问题的发生。

  


  

  

问题:在给出相对路径时,系统如何识别其相应的绝对路径呢& # 63;

  

事实上,相对路径是根据路径环境变量来查找绝对路径的。

  

举例来说,我目前在/home/itcast这个itcast使用者的家目录中,我想要看看里面的. bashrc这个档案的数据,使用的是更多这个指令,而这个指令在/bin/more当中,通常的命令写法是:

        (itcast@localhost ~)更多的美元. bashrc      

而由于路径变量的值为:

        (deng@localhost ~)回声路径美元/usr/local/bin:/usr/bin:/usr/地方/sbin:/usr/sbin:/home/邓。local/bin:/home/邓/bin   美元(deng@localhost ~)      

在执行更命令时,shell会根据路径变量的路径中顺序查找,一旦查找匹配到(此例匹配到的应该是/bin/更多),便执行/bin/. bashrc。这便是执行命令时由相对路径查找绝对路径的过程。

  

所以我们就可以理解为什么执行当前目录下的可执行程序应该用的格式是:

        美元。/test.sh deng@localhost ~   之前      

而不是直接用test.sh了。因为通常路径变量不包含当前路径。如果不加。/会导致相对路径格式的命令找不到绝对路径。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Linux相对路径和绝对路径的使用