当前位置: 首页 > 编程笔记 >

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

吴靖
2023-03-14
本文向大家介绍Linux 相对路径和绝对路径的使用,包括了Linux 相对路径和绝对路径的使用的使用技巧和注意事项,需要的朋友参考一下

01. 概述

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

02. 绝对路径(Absolute Pathname)

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

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

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

举例说明

示例一:
/home/deng

示例二:
/usr/share/man

03. 相对路径(Relative Pathnames)

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

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

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

示例一:
../test/itcast

示例二:
./test

04. 相对路径的用途

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

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

05. 绝对路径的用途

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

06. 思维发散

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

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

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

[itcast@localhost ~]$ more .bashrc

而由于PATH变量的值为:

[deng@localhost ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/deng/.local/bin:/home/deng/bin
[deng@localhost ~]$ 

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

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

[deng@localhost ~]$ ./test.sh

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

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

 类似资料:
  • 在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置,例如,在《 Linux文件系统的层次结构》中提到的 /home/cat 就表示的是 cat 文件所存放的位置。只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。 指明一个文件存放的位置,有 2 种方法,分别是使用 绝对路径和 相对路径。 我们知道,Linux 系统中所有的文件(目录)都被组织成以根

  • 主要内容:什么是当前工作目录,什么是绝对路径与相对路径,Python处理绝对路径和相对路径在介绍绝对路径和相对路径之前,先要了解一下什么是当前工作目录。 什么是当前工作目录 每个运行在计算机上的程序,都有一个“当前工作目录”(或 cwd)。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。 注意,虽然文件夹是目录的更新的名称,但当前工作目录(或当前目录)是标准术语,没有当前工作文件夹这种说法。 在 Python 中,利用 os.getcwd() 函数可以取得当前工作路径的字

  • 问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置

  • 问题内容: 我正在编写一个程序,其中的一个组件必须能够采用给定的路径(例如或)和基于该位置的相对路径(例如或或)并产生绝对路径由相对路径暗示。考虑以下目录树。 该文件包含一个链接,如。该计划获得通过或,并将其与结合来获得。 同样,文件具有链接,程序需要从该链接返回。有合理的方法做到这一点吗? 谢谢。:) 编辑: 谢谢斯蒂芬·温伯格!对于未来的每个人,这是我使用的代码。 问题答案: 在与使用时应该做

  • 本文向大家介绍相对路径和绝对路径的写法总结,包括了相对路径和绝对路径的写法总结的使用技巧和注意事项,需要的朋友参考一下 在C#中 “\”是特殊字符,要表示它的话需要使用“\\”。由于这种写法不方便,C#语言提供了@对其简化。 只要在字符串前加上@即可直接使用“\”。所以上面的路径在C#中应该表示为“Book”,@“\Tmp\Book”,@“C:\Tmp\Book”。 相对路径使用“/”字符作为目录

  • 问题内容: 我有文件A的绝对路径。 我有一个从文件A的目录到文件B的相对路径。此路径可以并且将使用“ ..”以任意复杂的方式向上移动目录结构。 范例A: 示例B: 我如何结合这两者以获得 最简单的 绝对路径到文件B? 问题答案: 如果我的问题正确,那么您可以执行以下操作: