例:
absolute="/foo/bar"
current="/foo/baz/foo"
# Magic
relative="../../bar"
どうすれば魔法が作れるのでしょうか (コードが複雑すぎないことを願いますが...)?
ベストアンサー1
GNU coreutils 8.23 から使用するのがrealpath
、最も簡単だと思います:
$ realpath -s --relative-to="$file1" "$file2"
例えば:
$ realpath -s --relative-to=/usr/bin/nmap /tmp/testing
../../../tmp/testing
この-s
フラグは、シンボリックリンクが展開されないことを保証します。