我想转变/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你的 shell 不支持,你可以试试
readlink -f /path/here/..
还
readlink -m /path/there/../../
工作方式与
realpath -s /path/here/../../
因为路径不需要存在就可以标准化。