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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM