linux路径问题

在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置,例如,在《Linux文件系统的层次结构》中提到的 /home/cat 就表示的是 cat 文件所存放的位置。只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。

指明一个文件存放的位置,有 2 种方法,分别是使用绝对路径和相对路径。

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

Linux系统文件组织结构示意图

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

[root@localhost ~]# bin
bash: bin: command not found   <-- 没有找到
[root@localhost ~]# /usr/bin
bash: /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

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

(0)

相关推荐

  • Linux操作系统常用命令合集

    一.选项和参数的区别        在经过上一次的系统安装后我们已经成功登陆,登陆LInux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着"选项"(英文名:opt ...

  • 【Linux笔记】文件及目录管理命令

    往期资料  == 菜单栏下有更多资料 资源分享 | 嵌入式相关 资源分享 | 编程语言类 资源分享 | Linux相关资料 资源分享 | 数据结构与算法 前言 之前分享的Cygwin是一个在windo ...

  • MySQL入门——Linux下安装后的配置文件

    MySQL入门--Linux下安装后的配置文件 摘要:本文主要了解了在Linux环境下安装MySQL后的配置文件的位置,以及如何创建配置文件. 查看配置文件的加载顺序 找到mysqld的路径 通过wh ...

  • Linux中的ls命令详细使用教程

    英文全名:List即列表的意思,当我们学习某种东西的时候要做到知其所以然,当你知道了这个东西大概是个什么了以后你的思维就会联想到很多的东西学习的就会很快.接下来是小编为大家收集的Linux中的ls命令 ...

  • 看完这篇你一定能掌握Linux(非广告)

    来自公众号:小姐姐味道 作者简介:一个不允许程序员走弯路的公众号.聚焦基础架构和Linux.十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道. 有很多同学微信问我,Linux命令这么多,该怎 ...

  • Linux:路径的概念及路径的切换

    路径分为绝对路径和相对路径 绝对路径:从/根开头的路径为绝对路径 相对路径:以当前目录为开头的为相对路径 根目录:/ 家目录:普通用户的家目录在/home下,root用户的家目录是/root 切换目录 ...

  • Linux 设置显示路径

    在cshrc中设置如下: alias setfmt 'set prompt="[%/]: "' 然后source cshrc,直接运行setfmt就可以了 Linux/Unix中的 ...

  • 显示命令及文件路径用什么命令?Linux运维命令

    查看Linux系统路径用什么命令?显示命令及其相关文件全路径的命令有哪些?快速定位文件路径用什么命令?Linux运维学习中,命令是非常重要的.每年学习Linux运维技术的人们越来越多,对于初学者来说, ...

  • Linux下文件路径如何转化成fopen()能用的路径类型

    例如:if((fp=fopen("/root/conf/test.txt","rb+"))==NULL) 当前路径组合:"\root\conf\tes ...

  • linux的文件安装路径

    如果是别人发布的二进制包,可执行文件通常都安装到 /usr/bin 下面:如果是自己从源代码安装的,可执行文件通常都在 /usr/local/bin 下面,除非配置时指定了安装位置. 例如: rpm ...

  • Linux下修改MySQL数据库数据文件路径

    使用rpm安装方式安装完MySQL数据库后,数据文件的默认路径为/var/lib/mysql,然而根目录并不适合用于存储数据文件. 原路径:/var/lib/mysql 目标路径:/home/mysq ...

  • 中医系统论开辟发展新路径

    中医系统论产生于20世纪80年代,由中医学与系统科学的交叉研究形成,以人的复杂性为研究方向,将为中医学的现代研究和发展开辟新路径. 中医系统论的性质和特点 中医学的研究对象是人的生命及其健康与疾病,系 ...

  • 早读 | 膝骨关节炎阶梯治疗 临床路径,专家共识给你答案!

    KOA 是发生发展阶段性最清晰.相应治疗方法和原则最明确.最适合阶梯性分级治疗的OA 之一.随着阶梯治疗的理念推广,如何帮助各级医护人员明确膝骨关节炎(KOA)阶梯化诊疗策略,探索KOA阶梯治疗的临床 ...

  • Linux命令route显示或管理路由表-linux运维学习

    route命令可以显示或管理Linux系统的路由表,route命令设置的路由主要是静态路由.掌握Linux命令对于Linux运维来说是必备技能,对于Linux运维工作起着重要的作用.那么route命令 ...