Linux获取两个路径之间的相对路径
获取两个路径之间的相对路径是一个很常见的问题,在Linux中怎么实现呢?
为了进行隔离,整个项目是用chroot跑的,有一次为了在chroot下建一个软链接,又不能用绝对路径,想自动计算一个路径相对于另一个路径的相对路径,怎么办呢?
经过一番搜索后发现,Linux中realpath和ln都有这个功能。
- realpath
realpath [OPTION]... FILE...
--relative-to=FILE
print the resolved path relative to FILE
example:
# realpath /var/chroot/var/log --relative-to=/var/chroot/var/lib/data/log
../../../log
- ln
ln [OPTION]... [-T] TARGET LINK_NAME
-r, --relative
create symbolic links relative to link location
example:
# ln -sr /var/chroot/var/log /var/chroot/var/lib/data/log/mylog
# ll /var/chroot/var/lib/data/log/
total 0
lrwxrwxrwx 1 root root 12 Mar 3 09:21 mylog -> ../../../log