realpath命令用于解析路径中的符号链接和相对路径,输出标准绝对路径。例如realpath ./Documents返回/home/user/Documents,处理软链接时展开目标路径,支持-m(路径不存在也解析)、-s(不展开符号链接)等选项,常用于Shell脚本中可靠获取脚本目录:SCRIPT_DIR=$(dirname "$(realpath "$0")"),有效避免路径不一致问题。

在Linux中,路径解析是日常操作中的常见需求,尤其是需要将相对路径、符号链接转换为标准的绝对路径时。realpath 命令正是为此设计的,它能帮助用户获取文件或目录的规范绝对路径。
什么是 realpath
realpath 是一个命令行工具,用于解析路径中的符号链接、相对路径(如 . 和 ..),并输出对应的绝对路径。它能确保你得到的是系统中实际存在的、唯一的路径表示。
基本语法:
realpath [选项] 文件或目录路径
常见用法示例
假设当前目录是 /home/user,我们来看几个典型场景:
- 解析相对路径:
realpath ./Documents
输出:/home/user/Documents - 处理符号链接:
如果 /home/user/config 是指向 /etc/app/config 的软链接,执行:
realpath /home/user/config
输出:/etc/app/config - 路径包含 .. :
realpath /var/log/../www
输出:/var/www
实用选项说明
realpath 支持一些常用选项来控制输出行为:
- -m:即使路径不存在也尝试解析,适用于构建路径场景
- -s:不展开符号链接(默认是展开的)
- -q:静默模式,不输出错误信息
例如,检查一个可能不存在的路径:
realpath -m /tmp/nonexistent/file.txt
会输出解析后的路径,而不会报错。
脚本中的使用建议
在Shell脚本中,获取脚本自身所在目录的绝对路径是一个典型应用:
SCRIPT_DIR=$(dirname "$(realpath "$0")")
这行代码能可靠地获取当前脚本的目录,不受调用路径或符号链接影响。
基本上就这些。realpath 看似简单,但在路径处理中非常实用,能避免很多因路径不一致导致的问题。不复杂但容易忽略。










