如何消除路径中的冗余组件?
例如,我想转换
HOME=""
到
/foo/../foo/bar
答案 0 :(得分:2)
使用gnu realpath
:
p='/foo/../foo/bar'
realpath -m "$p"
<强>输出:强>
/foo/bar
根据realpath --help
:
-m, --canonicalize-missing no components of the path need exist
您还可以使用更常用的readlink
(感谢@pjh):
readlink -m "$p"
答案 1 :(得分:0)
你可能会通过以下方式进行管道:sed&#39; s - / .. / foo / - / - g&#39;替换路径名中的向上/向下引用。