절대 경로를 상대 경로로 변환하는 방법은 무엇입니까?

절대 경로를 상대 경로로 변환하는 방법은 무엇입니까?

명령을 사용하여 절대 경로를 현재 작업 디렉터리에 대한 상대 경로로 변환하려면 어떻게 해야 합니까?

답변1

사용

realpath --relative-to=. /absolute/path

그것에 대해 더 알아보기여기.

답변2

단지 '스스로 굴러가는 것'의 재미를 위해

here=/dir1
there=/dir1/dir4/dir5/my.file
root=""
if [ ! -z $(grep "^$here" <<<$there) ]; then
    root="./"
else while [ -z $(grep  "^$here" <<<$there) ]; do
    here=${here%/*}
    root=${root}../
    done
fi
echo $root$(sed "s|^$here/||g" <<<$there)

./dir4/dir5/my.file

그리고

here=/dir1/dir2/dir3

../../dir4/dir5/my.file

관련 정보