示例:
absolute="/foo/bar"
current="/foo/baz/foo"
# Magic
relative="../../bar"
我如何创造魔力(希望代码不要太复杂……)?
发布于 2015-02-15 12:59:41
我认为使用GNU coreutils 8.23中的realpath是最简单的:
$ realpath --relative-to="$file1" "$file2"
例如:
$ realpath --relative-to=/usr/bin/nmap /tmp/testing
../../../tmp/testing
发布于 2011-09-05 15:50:59
$ python -c "import os.path; print os.path.relpath('/foo/bar', '/foo/baz/foo')"
提供:
../../bar
发布于 2011-02-17 18:40:53
#!/bin/bash
# both $1 and $2 are absolute paths
# returns $2 relative to $1
source=$1
target=$2
common_part=$source
back=
while [ "${target#$common_part}" = "${target}" ]; do
common_part=$(dirname $common_part)
back="../${back}"
done
echo ${back}${target#$common_part/}
https://stackoverflow.com/questions/2564634
复制相似问题