相对路径和绝对路径解析

        在 Linux/Unix 和文件系统中,绝对路径相对路径是描述文件或目录位置的两种方式,它们的核心区别在于路径的起点使用场景。以下是详细对比:


目录

1. 定义与起点

2. 符号与语法

3. 使用场景

4. 实际示例

示例 1:定位文件

示例 2:返回上级目录

示例 3:跨多级目录

5. 优缺点对比

6. 如何选择?

用绝对路径:

用相对路径:

总结


1. 定义与起点

类型绝对路径相对路径
起点根目录(/开始当前工作目录开始
示例/home/user/docs/file.txtdocs/file.txt 或 ../backup/
特点唯一且完整,不受当前目录影响依赖当前目录,更简洁但需上下文

2. 符号与语法

  • 绝对路径
    始终以 / 开头,逐级列出所有父目录。
    示例:

    /var/log/nginx/access.log   # 根目录 → var → log → nginx → access.log
  • 相对路径
    不以 / 开头,使用以下符号简化路径:

    • .:当前目录(例如 ./script.sh)。

    • ..:上级目录(例如 ../config/settings.conf)。

    • 直接写子目录或文件名(例如 photos/2024.jpg)。
      示例:

      # 假设当前目录是 /home/user
      docs/report.txt             # 实际路径:/home/user/docs/report.txt
      ../../etc/hosts             # 实际路径:/etc/hosts

3. 使用场景

场景绝对路径相对路径
脚本或配置文件明确指定文件位置,避免路径歧义需谨慎使用(依赖脚本执行的当前目录)
跨目录操作直接定位,无需切换目录需结合 cd 或嵌套路径
命令行快捷操作路径较长,但准确性高路径简短,适合当前目录下的快速访问

4. 实际示例

示例 1:定位文件

  • 假设当前目录为 /home/user/projects,目标文件路径为 /home/user/projects/src/app.js

    • 绝对路径/home/user/projects/src/app.js

    • 相对路径src/app.js 或 ./src/app.js

示例 2:返回上级目录

  • 从 /home/user/docs 跳转到 /home/user

    cd ..       # 相对路径:返回上级目录
    cd /home/user  # 绝对路径:直接指定目标

示例 3:跨多级目录

  • 从 /var/log/nginx 访问 /etc/nginx/nginx.conf

    cat ../../etc/nginx/nginx.conf   # 相对路径(向上两级)
    cat /etc/nginx/nginx.conf        # 绝对路径

5. 优缺点对比

特性绝对路径相对路径
明确性✅ 唯一确定,不依赖上下文❌ 依赖当前目录,可能因目录变化失效
长度❌ 路径较长✅ 简洁,适合嵌套目录操作
可移植性❌ 硬编码路径,更换环境需修改✅ 更灵活,适合项目内部引用
安全性✅ 不易被误操作(路径明确)❌ 可能因当前目录错误导致意外覆盖或删除文件

6. 如何选择?

  • 用绝对路径

    • 在脚本、配置文件或日志中明确指定关键文件。

    • 需要跨多个目录操作时(如从 /tmp 访问 /usr/local/bin)。

  • 用相对路径

    • 在项目内部引用资源(如代码中引用同级目录的模块)。

    • 频繁操作当前目录的子目录时(如开发、调试)。


总结

  • 绝对路径是“完整地址”,相对路径是“从当前位置出发的路线”。

  • 理解两者的区别可以避免文件操作中的路径错误,提升效率!

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

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

相关文章

【算法数据结构】leetcode37 解数独

37. 解数独 - 力扣(LeetCode) 题目描述: 题目要求每一行 ,每一列,每个3*3 的子框只能出现一次。每个格子的数字范围1-9. 需要遍历每个空格填入可能的数字,并验证符合规则。如果符合就填入,不符…

Vector的学习

vector简介 vector的相关文档对于想深入了解的同学可以参考这个文档进行学习。 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不…

Vue常用指令入门

1. v-for 作用&#xff1a;用于遍历对象或数组 注意&#xff1a;需要提供key属性&#xff0c;可以提高性能和避免渲染错误&#xff0c;值通常为index或item.id <li v-for"(item, index) in items" :key"index">{{ item }} </li>2. v-if,v-el…

在机器视觉检测中为何选择线阵工业相机?

线阵工业相机&#xff0c;顾名思义是成像传感器呈“线”状的。虽然也是二维图像&#xff0c;但极宽&#xff0c;几千个像素的宽度&#xff0c;而高度却只有几个像素的而已。一般在两种情况下使用这种相机&#xff1a; 1. 被测视野为细长的带状&#xff0c;多用于滚筒上检测的问…

线性DP:最长上升子序列(子序列可不连续,子数组必须连续)

目录 Q1&#xff1a;简单遍历 Q2&#xff1a;变式&#xff08;加大数据量&#xff09; Q1&#xff1a;简单遍历 Dp问题 状态表示 f(i,j) 集合所有以第i个数结尾的上升子序列集合-f(i,j)的值存的是什么序列长度最大值max- 状态计算 &#xff08;其实质是集合的划分&#xff09;…

【Web前端技术】第二节—HTML标签(上)

hello&#xff01;好久不见—— 做出一个属于自己的网站&#xff01; 云边有个稻草人-个人主页 Web前端技术—本篇文章所属专栏 目录 一、HTML 语法规范 1.1 基本语法概述 1.2 标签关系 二、HTML 基本结构标签 2.1 第一个 HTML 网页 2.2 基本结构标签总结 三、网页开发…

论文降重GPT指令-实侧有效从98%降低到8%

步骤1&#xff1a;文本接收 指令&#xff1a; 请用户提供需要优化的文本内容。 对文本进行初步分析&#xff0c;识别文本的基本结构和风格。 操作&#xff1a; 接收并分析用户提交的文本。 步骤2&#xff1a;文本优化 2.1 连接词处理 指令&#xff1a; 删除或替换连接词&#x…

Jsp技术入门指南【九】详细讲解JSTL

Jsp技术入门指南【九】详细讲解JSTL 前言一、什么是JSTL&#xff1f;&#xff08;JavaServer Pages Standard Tag Library&#xff09;二、使用JSTL前的准备三、核心标签库常用标签详解1. <c:out>&#xff1a;输出内容&#xff08;替代<% %>&#xff09;2. <c:i…

Linux操作系统--进程的创建和终止

目录 1.进程创建 1.1fork()函数初识 1.2写时拷贝 1. 提升系统效率 2. 隔离错误影响 3. 支持并行计算 2.进程终止&#xff1a; 2.1进程退出场景&#xff1a; 2.2进程常见退出方法&#xff1a; 2.3_exit()系统调用接口 2.4exit函数 2.5return退出 1.进程创建 1.1for…

OSPF综合实验——企业边界路由器、LSA收敛

IP划分粗略记号&#xff0c;方便后续配置 配置IP和环回--->ISP的IP配置和cheat认证---->配置OSPF和RIP---->企业边界路由网段汇总---->特殊区域---> 缺省路由&#xff0c;重分发---->nat配置---->实现全网通 路由器配置IP和环回地址 <Huawei>sys…

Java【网络原理】(4)HTTP协议

目录 1.前言 2.正文 2.1自定义协议 2.2HTTP协议 2.2.1抓包工具 2.2.2请求响应格式 2.2.2.1URL 2.2.2.2urlencode 2.2.3认识方法 2.2.3.1GET与POST 2.2.3.2PUT与DELETE 2.2.4请求头关键属性 3.小结 1.前言 哈喽大家好啊&#xff0c;今天来继续给大家带来Java中网络…

Android学习总结之APK打包流程

一、预处理阶段&#xff08;编译前准备&#xff09; 1. AIDL 文件处理&#xff08;进程间通信基础&#xff09; 流程&#xff1a; 用于实现 Android 系统中不同进程间的通信&#xff08;IPC&#xff09;。在项目构建时&#xff0c;AIDL 编译器会将 .aidl 文件编译为 Java 接口…

BDO分厂积极开展“五个一”安全活动

BDO分厂为规范化学习“五个一”活动主题&#xff0c;按照“上下联动、分头准备 、差异管理、资源共享”的原则&#xff0c;全面激活班组安全活动管理新模式&#xff0c;正在积极开展班组安全活动&#xff0c;以单元班组形式对每个班组每周组织一次“五个一”安全活动。 丁二醇单…

【音视频】FLV格式分析

FLV概述 FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式&#xff0c;由于其封装后的⾳视频⽂件体积⼩、封装简单等特点&#xff0c;⾮常适合于互联⽹上使⽤。⽬前主流的视频⽹站基本都⽀持FLV。采⽤FLV格式封装的⽂件后缀为.flv。 FLV封装格式是由⼀个⽂件头(file header)和…

Java表达式1.0

Java开发工具 在当今的Java开发领域&#xff0c;IntelliJ IDEA已然成为了众多开发者心目中的首选利器&#xff0c;它被广泛认为是目前Java开发效率最快的IDE工具。这款备受瞩目的开发工具是由JetBrains公司精心打造的&#xff0c;而JetBrains公司总部位于风景如画的捷克共和国首…

Map遍历

第一种遍历方式键找值&#xff1a; 增强for循环&#xff1a; 通过获取元素中的键&#xff0c;get到对应的值&#xff0c;通过增强for循环获取集合里的键&#xff0c;然后用get方法通过键获取值 代码演示&#xff1a; import java.text.ParseException; import java.util.*;…

内网穿透服务器—FRP

某天某刻空闲的时候跟同事聊的本地的存储服务如果我想让其他公网内的用户使用&#xff08;这个存储服务只是一个临时文件传递站&#xff0c;碎文件&#xff0c;安全低的&#xff09;&#xff0c;然后我们就探讨到了FRP一个比较久远的技术&#xff0c;来做内网穿透&#xff0c;下…

力扣每日打卡16 781. 森林中的兔子(中等)

力扣 781. 森林中的兔子 中等 前言一、题目内容二、解题方法1. 哈希函数&#xff08;来自评论区大佬的解题方法&#xff09;2.官方题解2.1 方法一&#xff1a;贪心 前言 这是刷算法题的第十六天&#xff0c;用到的语言是JS 题目&#xff1a;力扣 781. 森林中的兔子 (中等) 一、…

基于深度学习的线性预测:创新应用与挑战

一、引言 1.1 研究背景 深度学习作为人工智能领域的重要分支&#xff0c;近年来在各个领域都取得了显著的进展。在线性预测领域&#xff0c;深度学习也逐渐兴起并展现出强大的潜力。传统的线性预测方法在处理复杂数据和动态变化的情况时往往存在一定的局限性。而深度学习凭借…

黑马点评redis改 part 3

优惠券秒杀 全局唯一id 每个店铺都可以发布优惠券&#xff1a; 当用户抢购时&#xff0c;就会生成订单并保存到tb_voucher_order这张表中&#xff0c;而订单表如果使用数据库自增ID就存在一些问题&#xff1a;实际开发中数据库ID一般不会参与业务逻辑 增加一个订单号字段就好…