【Linux】Linux 系统编程——相对路径和绝对路径

文章目录

    • 概述
    • 绝对路径
    • 相对路径
    • 绝对路径的作用
    • 相对路径的作用
    • 系统是怎么通过相对路径定位文件的?

概述

相对路径和绝对路径是文件系统中定位文件和目录的两种主要方法。它们的主要区别在于如何引用文件的位置。

绝对路径

  • 定义: 绝对路径是从文件系统的根目录(表示为 /)开始的完整路径。它描述了从根目录到目标文件或目录的完整路径。

  • 特点:

    • 始终以斜杠 / 开始。
    • 不依赖于当前工作目录。
    • 明确且一致,不管当前位置在哪里,在任何时候都可以使用绝对路径定位到我们想要的文件
  • 例子:

    • /home/username/Documents/report.txt
    • /etc/nginx/nginx.conf
  • 使用场景:

    • 当需要确保引用的文件或目录不受当前工作目录变化的影响时。
    • 在脚本或系统配置文件中,当需要指向具有固定位置的文件时。

相对路径

  • 定义: 相对路径是相对于当前工作目录的路径。它不是从根目录开始,而是从用户当前所在的目录开始描述到目标文件或目录的路径。

  • 特点:

    • 不以斜杠 / 开始。
    • 可以使用 .(表示当前目录)和 ..(表示上一级目录)这样的特殊符号。
    • 依赖于当前工作目录。
  • 例子:

    • Documents/report.txt(如果当前目录是 /home/username
    • ../nginx.conf(表示当前目录的上一级目录中的 nginx.conf 文件)
  • 使用场景:

    • 在命令行操作中,当目标文件或目录与当前工作目录关系较近时。
    • 提高灵活性,尤其是在文件结构可能发生变化的情况下。

绝对路径的作用

绝对路径的主要特点是能够确保准确一致,从文件系统根开始的确切位置,确保无论当前的工作目录是什么,文件或目录的引用都是一致的。所以经常用在脚本自动化、系统配置文件、创建快捷方式等情况。

在编写脚本(如批处理脚本、Shell 脚本)或进行系统自动化时,使用绝对路径可以避免依赖于当前目录,提高脚本的可靠性和可移植性。当需要设置系统配置文件(如 Linux 中的 /etc/fstab )通常也使用绝对路径来确保系统服务和程序能够准确找到所需的文件和目录。此外,在设置网络共享或服务器资源时,使用绝对路径可以确保客户端始终能够准确访问共享资源。

相对路径的作用

相对路径的主要特点是灵活便捷,提供了一种相对于当前工作目录的方式来引用文件或目录,尤其在文件结构发生变化时可以更加灵活。相对路径经常用在在软件项目或网站开发中,可以方便地组织项目结构,使得项目文件之间的引用不依赖于具体的部署环境。也特别适合于动态生成的文件系统结构,其中文件的具体位置可能随时间变化。

系统是怎么通过相对路径定位文件的?

绝对路径定位文件比较好理解,直接从根目录开始,一层一层往下走,直到定位到具体文件。那么相对路径,比如../nginx.conf这种路径是怎么定位到具体文件的呢?

系统识别相对路径的过程基于当前工作目录(Current Working Directory)的。下面我们来详细探讨一下:

  1. 当前工作目录:

    • 在系统中执行任何操作时,都有一个“当前工作目录”。这是目前所在的目录,也是命令行界面或应用程序的参照点。
    • 在命令行中,通常可以通过命令(如 pwd 在 Unix/Linux 系统中)查看当前工作目录。
  2. 析相对路径 :

    • 当您使用相对路径引用文件或目录时,系统会从当前工作目录开始解析这个路径。
    • 例如,如果相对路径是 ./folder/file.txt,系统会在当前工作目录中查找名为 folder 的子目录,并在该子目录中寻找 file.txt 文件。
    • 如果路径开始于 …(表示上一级目录),系统会先跳到当前目录的父目录,然后再按照相对路径进行解析。
  3. 特殊符号 :

    • 在相对路径中,. 表示当前目录,而 … 表示上一级目录。
    • 这些符号可以组合使用来创建更复杂的路径。例如,…/…/file.txt 表示从当前目录开始向上两级,然后寻找 file.txt 文件。
  4. 与应用程序的交互 :

    • 当应用程序需要打开或保存文件时,通常使用相对路径来引用与当前工作目录相关的文件。
    • 这使得应用程序能够更灵活地处理文件,特别是在处理大量文件和目录结构时。
  5. 环境依赖性 :

    • 相对路径的解析依赖于环境,特别是当前工作目录的设置同一相对路径在不同的工作目录下可能指向不同的文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/615361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我国实施个人信息出境认证的要点

文章目录 前言一、个人信息保护认证与个人信息出境认证的关系二、欧盟提供了个人信息出境认证的制度先例(一)欧盟立法规定了认证制度是数据出境方式之一(二)欧盟设计完整的数据安全认证机制(三)欧盟内承认多种数据安全认证制度并存(四)欧盟数据安全认证主题多样化(五)…

yolov8 瑞芯微 RKNN 的 C++部署,部署工程难度小、模型推理速度快

之前写过两次yolov8目标检测部署,后续继续思考,针对部署还有优化空间,本示例的部署方式优化了部署难度,加快了模型推理速度(略微增加了后处理的时耗)。 特别说明:如有侵权告知删除,…

麒麟OS + DM8数据库(Graalvm for JDK17) 测试

1、添加依赖 implementation com.dameng:DmJdbcDriver18:8.1.3.62 implementation com.baomidou:mybatis-plus-boot-starter:3.5.4 2、application.yml 数据源配置 spring: datasource: driver-class-name: dm.jdbc.driver.DmDriver #com.mysql.cj.jdbc.Driver url: jdbc:d…

【linux】linux中硬链接和符号链接的区别

在Linux系统中,硬链接(Hard Link)和符号链接(Symbolic Link,也称为软链接)是两种不同类型的文件链接方式,它们的主要区别如下: 硬链接(Hard Link)&#xff1a…

高效微调大型预训练模型的Prompt Learning方法

目录 前言1 prompt learning简介2 prompt learning步骤2.1 选择模型2.2 选择模板(Template)2.3 Verbalizer的构建 3 Prompt Learning训练策略3.1 Prompting组织数据,优化参数3.2 增加Soft Prompts,冻结模型,优化Prompt…

【2023年度总结与2024展望】---23年故事不长,且听我来讲

文章目录 前言一、学习方面1.1 攥写博客1.2 学习内容1.3 参加比赛获得证书 二、生活方面2.1写周报记录生活 三、运动方面四、CSDN的鼓励五、24年展望总结 前言 时光飞逝,又是新的一年,遥想去年2023年我也同样在这个时间段参加了CSDN举办的年度总结活动&a…

react全家桶

1、create-react-app npx create-react-app web --template typescript 2、axios npm i axios 3、antd官网 npm install antd --save 4、react路由 npm i react-router-dom 5、use-immer npm install use-immer 6、sass、sass-loader、sass-resources-loader np…

PDF结构详解

文章目录 介绍前言高保真的文件什么是PDF?PDF的一些优点版本摘要谁在使用PDF?有用的免费软件谁应该阅读 构建一个简单PDF文件基本PDF语法File StructureDocument ContentPage Content 构建简单PDF文件头目录,交叉引用表和文件尾主要对象图形内…

0基础学习VR全景平台篇第137篇:720VR全景,DJI无人机遥控器调参

上课!全体起立~ 大家好,欢迎观看蛙色官方系列全景摄影课程! 这节课以御2为例 介绍的是无人机调参 步骤一:下载DJI Go 4并注册账号 步骤二:拿下遥杆并装好,展开遥控天线。将无人机与遥控器相连&#xff…

【AI视野·今日Sound 声学论文速览 第四十三期】Mon, 8 Jan 2024

AI视野今日CS.Sound 声学论文速览 Mon, 8 Jan 2024 Totally 6 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers MusicAOG: an Energy-Based Model for Learning and Sampling a Hierarchical Representation of Symbolic Music Authors Yikai Qian, Tia…

OpenHarmony4.0Release系统应用常见问题FAQ

前言 自OpenHarmony4.0Release发布之后,许多小伙伴使用了配套的系统应用源码以及IDE作为基线开发,也遇到了各种各样的问题,这篇文档主要收录了比较常见的一些问题解答。 FAQ 系统应用源码在哪 目前OpenHarmony系统应用分为3种模式&#x…

九州金榜|为什么本科生“回炉”读职校?

近年来,“本科学历+技能证书”成为不少大学毕业生求职时的配置,本科毕业生“回炉”职业院校学习技能的现象引发社会关注。 为什么会引发这种现象发生呢?现在学校教育学的是理论知识,而“回炉”确实学习的实操&#xff…

065:vue中将一维对象数组转换为二维对象数组

第065个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

IDEA 启动错误提示:Command line is too long. Shorten command line

IDEA 启动错误提示:Command line is too long. Shorten command line Command line is too long. Shorten command line IDEA 启动错误提示:Command line is too long. Shorten command line快速修改原因解释 快速修改 Edit Configurations->configu…

将台式机变为服务器,服务器设置静态IP的方法

一.查看IP: 同时按winR,输入cmd,打开终端。输入 ifconfig查看IP地址 查看网关: route -n二、配置静态IP地址 进入root权限 sudo -i进入.yaml文件,开始配置静态IP地址 vim /etc/netplan /*.yaml文件地址是/etc/netplan/01-network-manager-…

如何使用PR制作抖音视频?抖音短视频创作素材剪辑模板PR项目工程文件

如何使用PR软件制作抖音视频作品?Premiere Pro 抖音短视频创作素材剪辑模板PR项目工程文件。 3种分辨率:10801920、10801350、10801080。 来自PR模板网:https://prmuban.com/37058.html

Scrapy框架自学

配置国内镜像源 # pip设置配置 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set trusted-host pypi.tuna.tsinghua.edu.cn创建虚拟环境 # 使用conda创建虚拟环境(具体内容请参考课件) conda create -n py_s…

RFID技术在智能制造中的应用有哪些?

RFID技术在智能制造中的应用非常广泛,以下是一些主要的应用: 生产管理:通过在生产线上使用RFID技术,可以实现对原材料、零部件、半成品和成品的全过程跟踪和追溯。每个产品都可以配备一个RFID标签,记录其生产过程、质量…

Url中字段参数处理,是否包含特定参数,获取参数的值,替换参数值

判断URL中是否有某一特定参数: public static boolean hasParameter(String urlString, String parameterName) {try {URL url new URL(urlString);String query url.getQuery();if (query ! null) {String[] params query.split("&");for (Strin…

JetBrains 开发工具——免费教育许可申请流程

JetBrains 开发工具——免费教育许可申请流程 本文将详细介绍通过教育邮箱申请Free Educational Licenses. Free Educational Licenses地址 1.选择符合自己的申请入口 2.填写申请表单提交 官方指南 😃😃😃