用户输入的绝对路径,不会丢失内部的符号链接

用户输入的绝对路径,不会丢失内部的符号链接

是否可以在 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

相关内容