realpath 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于文件与目录命令族(见文件与目录命令族)。把
./a/../b这种乱路径,变成干净绝对路径。
realpath 把一个路径(可能含 .、..、软链接、相对段)规范化成无歧义的绝对真实路径。和 readlink -f(见readlink)效果几乎一样。
一、基本用法
bash
realpath ./a/../b/file # 规范成 /当前目录/b/file
realpath /usr/bin/python # 穿过软链接到真实文件它会解析
..回退、/归一、软链接展开,输出绝对路径。比手拼字符串可靠,跨目录操作文件前先realpath一下最稳。
二、校验存在:-e
bash
realpath -e /path/to/file # 文件必须存在,否则报错
realpath -m /path/maybe/missing # 即使不存在也规范化(不校验)
-e(exist)要求最终路径存在才输出,适合"确认文件真在";-m(no missing)宽松,只做规范化不管存不存在,适合先算路径再创建。
三、脚本取绝对路径
bash
CONF="$(realpath "$1")" # 把用户输入的相对路径转绝对
DIR="$(dirname "$(realpath "$0")")" # 脚本所在绝对目录脚本接收用户参数或定位自身时,
realpath把相对路径变绝对,后续 cd、拼接都安全。和readlink -f选哪个都行,语义一致。
一句话总结
realpath = 规范化绝对路径:把 ./../软链接/相对段归一为无歧义绝对路径;-e 校验存在、-m 宽松不校验;脚本里把用户输入或 $0 转绝对路径最稳;和 readlink -f(见readlink)效果一致。