写点什么

Linux 绝对路径和相对路径

作者:向阳逐梦
  • 2023-10-23
    四川
  • 本文字数:1374 字

    阅读完需:约 5 分钟

Linux绝对路径和相对路径

在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置。

只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。指明一个文件存放的位置,有 2 种方法,分别是使用绝对路径相对路径

我们知道,Linux 系统中所有的文件(目录)都被组织成以根目录“/”开始的倒置的树状结构

绝对路径一定是由根目录 / 开始写起。例如,使用绝对路径的表示方式指明 bin 文件所在的位置,该路径应写为 /usr/bin,测试代码如下:


[root@localhost ~]# binbash: bin: command not found   <-- 没有找到[root@localhost ~]# /usr/binbash: /usr/bin: is a directory   <-- 是一个文件
复制代码

可以看到,如果仅传递给 Linux 系统一个文件名,它无法找到指定文件;而当将 bin 文件的绝对路径传递 Linux 系统时,它就可以成功找到。和绝对路径不同,相对路径不是从根目录 / 开始写起,而是从当前所在的工作目录开始写起。使用相对路径表明某文件的存储位置时,经常会用到前面讲到的 2 个特殊目录,即当前目录(用 . 表示)和父目录(用 .. 表示)。举个例子,当我们使用 root 身份登录 Linux 系统时,当前工作目录默认为 /root,如果此时需要将当前工作目录调整到 root 的子目录 Desktop 中,当然可以使用绝对路径,示例代码如下:


[root@localhost ~]# pwd     <-- 显示当前所在的工作路径/root[root@localhost ~]# cd /root/Desktop[root@localhost Desktop]# pwd/root/Desktop
复制代码

注意,这里所使用的 pwd 和 cd 命令,目前只需知道它们的功能即可,具体用法会在后续文章中作详细讲解。

可以看到,通过使用绝对路径,我们成功地改变了当前工作路径。但除此之外,使用相对路径的方式会更简单。因为目前处于 /root 的位置,而 Desktop 就位于当前目录下,所以:

[root@localhost ~]# pwd    <-- 显示当前所在的工作路径/root[root@localhost ~]# cd ./Desktop[root@localhost Desktop]# pwd/root/Desktop
复制代码

此代码中,./Desktop 表示的就是 Destop 文件相对于 /root 所在的路径。再举一个例子,如果以 root 身份登录 Linux 系统,并实现将当前工作目录由 /root 转换为 /usr 目录,有以下 2 种方式:

#使用绝对路径[root@localhost ~]# pwd <-- 显示当前所在的工作路径/root[root@localhost ~]# cd /usr[root@localhost ~]# pwd/usr#使用相对路径[root@localhost ~]# pwd <-- 显示当前所在的工作路径/root[root@localhost ~]# cd ../usr <-- 相对 root,usr 位于其父目录 /,因此这里要用到 ..[root@localhost ~]# pwd/usr
复制代码

总之,绝对路径是相对于根路径 / 的,只要文件不移动位置,那么它的绝对路径是恒定不变的;而相对路径是相对于当前所在目录而言的,随着程序的执行,当前所在目录可能会改变,因此文件的相对路径不是固定不变的。


在 linux 中,确定文件位置,有绝对路径(absolute)与相对路径(relative)两种表示方法:

1. 绝对路径:以根目录(/)开始的文件名或目录名称, 如 /lib/sudo/sudo_noexec.so;

2. 相对路径:相对于目前路径的文件名写法。 如 ./lib/sudo/ 或 ././lib/sudo/ 等。


由于指令的执行需要系统的支持,若你的执行文件放置在本目录,并且本目录没有加入 PATH 路径中,并非正规的执行文件目录(/bin, /usr/bin 等加入 PATH 路径中的目录为正规的执行文件目录),此时就需要在指令所在目录下严格按照./command 指令格式来该执行指令。


发布于: 刚刚阅读数: 5
用户头像

向阳逐梦

关注

人生享受编程,编程造就人生! 2022-06-01 加入

某公司芯片测试工程师,嵌入式开发工程师,InfoQ签约作者,阿里云星级博主,华为云·云享专家。座右铭:向着太阳,追逐梦想!

评论

发布
暂无评论
Linux绝对路径和相对路径_向阳逐梦_InfoQ写作社区