一、命令简介
realpath
用户获取目录(文件、文件夹)的绝对路径,方便脚本和程序处理文件和目录。
本文中 绝对路径
=完整路径
=真实路径
二、命令参数
realpath 选项 目录
通常不需使用选项。
-
--relative-to=DIR
: 输出相对于指定目录的相对路径,而不是绝对路径。 -
--relative-base=DIR
: 与--relative-to
一起使用,显示基于该目录的路径。 -
--canonicalize
: 将所有路径标准化(默认行为),等效于realpath
不带参数。 -
--canonicalize-missing
: 与--canonicalize
类似,但即使路径不存在也会标准化。 -
--no-symlinks
: 不解析符号链接,仅输出所提供路径的标准化版本。 -
--strip
,-m
: 删除路径中的冗余部分,如/./
或/../
。
三、命令示例
示例 1: 获取指定目录的完整路径
当前目录
realpath .
假设当前目录为 /home/soulio/
,输出将是完整的路径:
/home/soulio/
示例 2: 解析符号链接
realpath /bin/unxz
输出
/usr/bin/xz
原来 zx
和 unxz
命令都是 /usr/bin/xz
程序的软链接
示例 3: 相对于目录的相对路径
realpath --relative-to=/home/user /home/user/docs/file.txt
输出
docs/file.txt
示例 4: 处理不存在的文件
即使路径不存在,也将生成标准化的路径:
realpath --canonicalize-missing ./nonexistent/dir/file.txt
如果当前目录为 /home/user/
,输出将是:
/home/user/nonexistent/dir/file.txt
示例 5: 不解析符号链接
realpath --no-symlinks /bin/unxz
输出
/bin/unxz
不会解析软链接指向的真实路径。