首页/系统/Linux 运维命令速查/realpath 解析绝对真实路径
文件与目录76 条

realpath 解析绝对真实路径

把相对路径、含软链接的路径解析为规范绝对路径;-m 允许路径不存在,部署脚本常用。

Linux 运维命令速查系统更新于 2026-10-13

realpath 是什么

realpath 把相对路径与含软链接的路径解析成规范化的绝对路径,同时去掉路径中的点与点号段。需要为尚未创建的路径做规划时,可以用容错选项让不存在的层级也能正常解析。

基本信息

用途解析并输出规范化绝对路径
语法realpath [选项] 路径...
所属GNU coreutils
常用能力容错解析不存在的路径、输出相对路径

典型使用场景

  • 脚本自举:先解析脚本真实位置,再切换工作目录
  • 规划路径:目标还不存在时也要先算出绝对路径
  • 路径对比:把两种写法的路径规范化后比较是否同一位置
  • 生成相对路径:把绝对路径转换成相对指定目录的形式
  • 排查软链接:确认某个路径最终指向哪里

常用示例

常用示例
realpath ./logs/../app/current
realpath -m /opt/app/v99/not-yet-created      # 允许路径不存在
realpath --relative-to=/data /data/app/logs   # 输出 app/logs
realpath -e ./maybe-missing                   # 严格要求全部存在
ls -l /opt/app/current                        # 对照软链接指向

选项对照

选项作用注意
默认解析软链接并规范化要求路径各级存在
-m容错解析不存在的层级照常输出
-e严格要求存在任一层级缺失即报错
相对路径输出相对指定目录计算适合生成可移植路径
与解析链接命令对比只解析软链接段不做整体规范化
需要规范化的绝对路径时用它;只想看一段软链接指向时用解析链接命令更轻。
默认模式要求路径各级存在,为尚未创建的目录做规划时先加容错选项,否则直接报错。
路径规范化会去掉多余层级并解析中间的软链接,输出结果可能与书写形式差别很大。
输出结果可直接用于配置或比较:把两种写法都规范化后再比对,能立刻判断是否指向同一位置。

易错点

  • 默认模式要求路径各级存在,规划尚未创建的路径时不加容错选项会直接报错
  • 只想解析一段软链接却做全路径规范化,会得到意料之外的目标路径
  • 把规范化结果写进配置前先确认指向是否符合预期,软链接链会改变最终位置
  • 路径含空格时不加引号会被拆成多个参数,变量务必用双引号包裹

数据来源与参考

  • man 1 realpath(GNU coreutils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌