在 shell 中读取符号链接目标的可移植方式 [duplicate]

Portable way to read symlink destination in shell [duplicate]

提问人:olebole 提问时间:7/12/2023 更新时间:7/12/2023 访问量:25

问:

有没有办法可移植地(至少是 Linux 和 macOS)获取 (Posix) shell 脚本中符号链接的目标? 在一个旧程序中,我发现

ls -lad "bin" 2> /dev/null | awk '{ printf ("%s\n", $11) }'

但是,当用户名或组名包含空格时,这将失败。

stat(1) (IMO 是规范的解决方案) 在 LinuxmacOS 上有不同的选项。

壳牌 SH LS 统计数据

评论

0赞 Charles Duffy 7/12/2023
参见 BashFAQ #29,特别是其中的 perl 解决方案;perl 不是 POSIX 指定的,但它几乎无处不在。
0赞 Charles Duffy 7/12/2023
请注意,Linux 和 MacOS 作为平台支持目标并不是很激进;如果这些是你唯一关心的平台,那么有 or .readlinkrealpath

答: 暂无答案