web-dev-qa-db-ja.com

絶対パスを相対パスに変換する方法は?

コマンドを使用して、絶対パスを現在の作業ディレクトリからの相対パスに変換するにはどうすればよいですか?

2
Dull Bananas

使用する

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

もっと詳しく ここ

8
Vishal

「自分で転がす」の楽しみのためだけに

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
1
bu5hman