什么是Linux路径
在Linux文件系统中,所有的文件和目录都按照树形结构组织,根目录是整个文件系统的起点,用斜杠/表示。路径就是用来描述某个文件或目录在树形结构中所处位置的一串字符,通过路径可以快速定位到目标文件或目录。根据路径的书写规则不同,分为绝对路径和相对路径两种类型。

Linux绝对路径的定义与示例
绝对路径是从Linux根目录/开始,完整描述文件或目录位置的路径,无论当前工作目录是什么,绝对路径指向的目标都是固定的。
绝对路径的特点:
- 一定以斜杠/作为开头
- 路径完整,不依赖当前所在目录
- 定位准确,不会因为工作目录变化而指向错误位置
举个例子,系统中有一个用户配置文件,存放在/etc/profile,这个就是绝对路径,不管你当前在哪个目录下,执行以下命令都可以查看这个文件:
# 使用绝对路径查看/etc/profile文件内容 cat /etc/profile
再比如,当前用户的主目录绝对路径通常是/home/用户名,假设用户名是test,那么test用户的主目录绝对路径就是/home/test,进入这个目录的命令如下:
# 使用绝对路径进入test用户主目录 cd /home/test
Linux相对路径的定义与示例
相对路径是相对于当前工作目录的路径,它的起点不是根目录,而是当前所在的目录,所以相对路径的含义会随着当前工作目录的变化而变化。
相对路径的特点:
- 不以斜杠/作为开头
- 依赖当前工作目录,不同工作目录下相同相对路径可能指向不同目标
- 书写更简洁,适合在当前目录附近的文件操作
常见的相对路径特殊符号:
| 符号 | 含义 |
|---|---|
| . | 表示当前工作目录 |
| .. | 表示当前工作目录的上一级目录 |
| ~ | 表示当前用户的主目录 |
举个例子,假设当前工作目录是/home/test,想要进入该目录下的documents子目录,使用相对路径的写法就是:
# 使用相对路径进入当前目录下的documents子目录 cd documents # 等价写法,显式使用.表示当前目录 cd ./documents
如果当前在/home/test/documents目录下,想要回到上一级的/home/test目录,使用相对路径的写法如下:
# 使用相对路径回到上一级目录 cd ..
如果当前在任何目录下,想要快速回到自己的主目录,使用~相对路径的写法:
# 使用~快速回到当前用户主目录 cd ~
绝对路径与相对路径的差异对比
两者的核心差异主要体现在以下几个方面:
- 起点不同:绝对路径从根目录/开始,相对路径从当前工作目录开始
- 稳定性不同:绝对路径不受当前工作目录影响,相对路径会随当前工作目录变化
- 书写长度不同:绝对路径通常更长,相对路径在就近操作时更简短
- 适用场景不同:脚本编写、定时任务等需要固定路径的场景优先用绝对路径,日常终端操作就近访问文件时用相对路径更高效
实际使用场景建议
在编写Shell脚本或者设置定时任务时,建议优先使用绝对路径,因为脚本执行时的当前工作目录可能和预期不一致,使用绝对路径可以避免路径错误导致的问题。比如写一个备份脚本,备份/etc目录下的配置文件,应该使用绝对路径指定源目录和目标目录:
#!/bin/bash # 使用绝对路径的备份脚本示例 backup_dir="/tmp/etc_backup" source_dir="/etc" # 创建备份目录 mkdir -p $backup_dir # 备份文件 cp -r $source_dir $backup_dir
在日常终端操作中,如果操作的文件就在当前目录或者附近目录,使用相对路径可以减少输入量,提升操作效率。比如当前在/home/test/project目录下,要运行该目录下的start.sh脚本,直接执行./start.sh即可,不需要输入完整的/home/test/project/start.sh。
路径相关的常用命令
在使用路径时,有几个常用命令可以辅助操作:
pwd:查看当前所在的工作目录的绝对路径ls:列出当前目录下的文件和子目录,加上绝对路径或相对路径可以列出指定目录的内容cd:切换工作目录,后面可以跟绝对路径或相对路径
比如查看当前工作目录的绝对路径:
# 查看当前工作目录的绝对路径 pwd
列出/etc目录下的所有文件,使用绝对路径:
# 使用绝对路径列出/etc目录内容 ls /etc
列出当前目录下documents子目录的内容,使用相对路径:
# 使用相对路径列出documents目录内容 ls documents