我想简化包含父目录 ( ..
) 引用的路径,但不使其绝对。
例如,像这样的路径foo/bar/../baz
应该简化为,foo/baz
因为该bar/..
部分抵消了1。
1严格来说,如果bar
是其他地方的符号链接,则这是不正确的 - 但请随意忽略这一点:我不在乎简化返回的结果是否与存在符号链接的原始路径不同。
答案1
我想您正在寻找的是realpath
:
$ realpath --relative-to="$PWD" "foo/bar/../baz"
foo/baz
它也适用于符号链接,使用-s
忽略它们:
-s, --strip, --no-symlinks 不扩展符号链接