我想转变/foo/bar/..成/foo
/foo/bar/..
/foo
是否有执行此操作的bash命令?
编辑:在我的实际情况下,该目录确实存在。
如果您想从路径中截取一部分文件名,则“ dirname”和“ basename”是您的朋友,并且“ realpath”也很方便。
dirname /foo/bar/baz # /foo/bar basename /foo/bar/baz # baz dirname $( dirname /foo/bar/baz ) # /foo realpath ../foo # ../foo: No such file or directory realpath /tmp/../tmp/../tmp # /tmp
realpath 备择方案
realpath
如果realpath您的外壳不支持,则可以尝试
readlink -f /path/here/..
也
readlink -m /path/there/../../
与…相同
realpath -s /path/here/../../
因为不需要标准化路径。