小惠 2020-03-03
获取两个路径之间的相对路径是一个很常见的问题,在Linux中怎么实现呢?
为了进行隔离,整个项目是用chroot跑的,有一次为了在chroot下建一个软链接,又不能用绝对路径,想自动计算一个路径相对于另一个路径的相对路径,怎么办呢?
经过一番搜索后发现,Linux中realpath和ln都有这个功能。
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 [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
所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。/lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下。