Linux 命令:readlink
概述
readlink
是 Linux 系统中用于查看符号链接(symbolic link,简称 symlink)目标路径的命令,它能直接返回符号链接所指向的原始文件或目录的路径。- 资料合集:
https://pan.quark.cn/s/6fe3007c3e95
基本语法
readlink [选项] 符号链接名
常用选项
-f
:递归跟随符号链接,返回最终目标的绝对路径(即使中间有多层链接)-e
:类似-f
,但要求最终目标必须存在-n
:不输出结尾的换行符-s
:简化输出(移除多余的斜杠等)
工作原理
符号链接是指向另一个文件或目录的特殊文件,readlink
命令专门用于解析这种链接关系:
- 对于相对路径的符号链接,默认返回相对目标路径
- 使用
-f
等选项可以获取规范化的绝对路径
常用示例
-
查看符号链接的直接目标:
readlink /usr/bin/python # 输出示例: python3.9
-
获取符号链接的最终绝对路径(递归解析):
readlink -f /usr/bin/python # 输出示例: /usr/bin/python3.9
-
检查符号链接是否指向有效文件:
readlink -e /etc/alternatives/java # 输出示例: /usr/lib/jvm/java-11-openjdk-amd64/bin/java # 如果目标不存在则无输出
-
在脚本中使用(获取配置文件的实际路径):
CONFIG_LINK="/etc/myapp/config" REAL_CONFIG=$(readlink -f "$CONFIG_LINK") echo "实际配置文件路径: $REAL_CONFIG"
与 ls -l
的区别
ls -l
会显示链接文件的详细信息,包括权限、大小和目标路径,但输出包含额外信息readlink
只专注于输出链接目标,适合在脚本中直接获取路径值
readlink
命令在处理符号链接相关的脚本编写、系统配置检查和文件路径解析时非常有用,尤其适合需要自动化处理链接目标的场景。