¿Cómo convertir una ruta absoluta en una ruta relativa?

¿Cómo convertir una ruta absoluta en una ruta relativa?

¿Cómo uso un comando para convertir una ruta absoluta en una ruta relativa al directorio de trabajo actual?

Respuesta1

Usar

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

Más sobre estoaquí.

Respuesta2

Sólo por el gusto de "enrollar el tuyo"

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

y para

here=/dir1/dir2/dir3

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

información relacionada