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

简介: 【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)的。下面我们来详细探讨一下:

当前工作目录:

在系统中执行任何操作时,都有一个“当前工作目录”。这是目前所在的目录,也是命令行界面或应用程序的参照点。

在命令行中,通常可以通过命令(如 pwd 在 Unix/Linux 系统中)查看当前工作目录。

析相对路径 :


当您使用相对路径引用文件或目录时,系统会从当前工作目录开始解析这个路径。

例如,如果相对路径是 ./folder/file.txt,系统会在当前工作目录中查找名为 folder 的子目录,并在该子目录中寻找 file.txt 文件。

如果路径开始于 …(表示上一级目录),系统会先跳到当前目录的父目录,然后再按照相对路径进行解析。

特殊符号 :


在相对路径中,. 表示当前目录,而 … 表示上一级目录。

这些符号可以组合使用来创建更复杂的路径。例如,…/…/file.txt 表示从当前目录开始向上两级,然后寻找 file.txt 文件。

与应用程序的交互 :


当应用程序需要打开或保存文件时,通常使用相对路径来引用与当前工作目录相关的文件。

这使得应用程序能够更灵活地处理文件,特别是在处理大量文件和目录结构时。

环境依赖性 :


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

目录
相关文章
|
11天前
|
Linux
Linux系统之expr命令的基本使用
【10月更文挑战第18天】Linux系统之expr命令的基本使用
42 4
|
8天前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
97 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
10天前
|
Linux 测试技术 网络安全
Linux系统之安装OneNav个人书签管理器
【10月更文挑战第19天】Linux系统之安装OneNav个人书签管理器
32 5
Linux系统之安装OneNav个人书签管理器
|
9天前
|
运维 监控 Linux
Linux系统之部署Linux管理面板1Panel
【10月更文挑战第20天】Linux系统之部署Linux管理面板1Panel
53 2
Linux系统之部署Linux管理面板1Panel
|
12天前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
31 5
Linux系统之安装Ward服务器监控工具
|
2天前
|
Ubuntu Linux Shell
Linux 系统中的代码类型或脚本类型内容
在 Linux 系统中,代码类型多样,包括 Shell 脚本、配置文件、网络配置、命令行工具和 Cron 定时任务。这些代码类型广泛应用于系统管理、自动化操作、网络配置和定期任务,掌握它们能显著提高系统管理和开发的效率。
|
5天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
37 3
|
6天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
8天前
|
存储 安全 关系型数据库
Linux系统在服务器领域的应用与优势###
本文深入探讨了Linux操作系统在服务器领域的广泛应用及其显著优势。通过分析其开源性、安全性、稳定性和高效性,揭示了为何Linux成为众多企业和开发者的首选服务器操作系统。文章还列举了Linux在服务器管理、性能优化和社区支持等方面的具体优势,为读者提供了全面而深入的理解。 ###
|
10天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
105 2