Linux 的文件系统以单根树状结构组织,所有文件和目录都从根目录 / 开始向下延伸。每当你需要告诉系统“某个文件在哪里”时,就有两种表达方式:绝对路径和相对路径。理解这两者,是在命令行中高效导航和编写脚本的基础。
1. 绝对路径:从根开始的完整地址
绝对路径以 / 开头,给出了从根目录到目标节点的一条完整路线,不依赖于你当前身处哪个目录。例如:
/home/alice/documents/report.txt/etc/ssh/sshd_config/var/log/syslog
使用绝对路径的最大好处是可靠性:无论在系统的哪个角落执行,它指向的都是同一个文件。在编写脚本、配置服务或设置定时任务时,几乎总是推荐使用绝对路径,因为脚本的执行环境通常不会预设一个特定的工作目录。
2. 相对路径:以当前位置为起点的快捷方式
相对路径不以 / 开头,而是基于当前工作目录(可以用 pwd 命令查看)进行计算。它利用了两个特殊目录标记:
.(单点)代表当前目录;..(双点)代表上一级目录。
假设你当前在 /home/alice 目录下,下面几条相对路径的含义分别是:
documents/report.txt→/home/alice/documents/report.txt./downloads/music→/home/alice/downloads/music(./通常可省略)../bob/photos→/home/bob/photos(先退到/home,再进入bob/photos)
相对路径的优势是简短、省键盘,在日常交互操作中非常方便。你可以在一个项目目录内快速穿梭,而不用反复输入冗长的前缀。
3. 实用要点
~波浪号:代表当前用户的家目录。~/documents等同于/home/alice/documents(若你是 alice)。它既非绝对也非严格意义上的相对路径,但可作为快捷写法。-短横线:代表上一个工作目录。执行cd -会在最近两次所在目录间来回切换,非常实用。- 路径大小写敏感:
Report.txt、report.txt和REPORT.TXT是三个不同的文件,这与 Windows 的习惯不同,需要特别注意。 - 空格与特殊字符:如果路径中包含空格(如
My Documents),需要用引号包裹或使用反斜杠转义:cd "My Documents"或cd My\ Documents。
4. 什么时候用哪种?
- 绝对路径:写脚本、配置环境变量、设置系统服务、分享路径给他人时使用,确保在任何上下文中路径都能正确解析。
- 相对路径:在终端中临时跳转、在项目目录内操作文件时使用,减少输入量,但前提是你清楚当前工作目录在哪里。执行前可以先用
pwd确认位置。 - 特别提醒:在
crontab定时任务、systemd 服务单元等场景下,强烈建议全部使用绝对路径,因为这些环境可能根本没有你预期的“当前目录”。
理解绝对路径和相对路径的差异,是顺畅使用 Linux 命令行的第一步。随着日常使用,你会在手指间自然养成何时写 /、何时写 .. 的习惯,并在不同场景中恰到好处地做出选择。