コマンドを使用して絶対パスを現在の作業ディレクトリに対する相対パスに変換するにはどうすればよいですか?
答え1
答え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