是否可以在 shell 脚本中将用户输入路径(绝对或相对)转换为绝对路径,但不会丢失内部的符号链接,例如 /a/b/c 是当前用户目录,c 是 /a/ 的符号链接b/s:
input . => result /a/b/c
input ./d => result /a/b/c/d
input ../c => result /a/b/c
input /a/b/c => result /a/b/c
(readlink converts it to /a/b/s, but I need /a/b/c)
答案1
如果我正确理解你的问题,你需要realpath
使用-s
:
-s, --strip 仅剥离。和 .. 组件,但不解析符号链接。
$ realpath -s a/b/c
/tmp/a/b/c
$ readlink a/b/c
s