Wie konvertiere ich einen absoluten Pfad in einen relativen Pfad?

Wie konvertiere ich einen absoluten Pfad in einen relativen Pfad?

Wie konvertiere ich mit einem Befehl einen absoluten Pfad in einen Pfad relativ zum aktuellen Arbeitsverzeichnis?

Antwort1

Verwenden

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

Mehr dazuHier.

Antwort2

Einfach nur zum Spaß, „sein eigenes Zeug zu drehen“

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

und für

here=/dir1/dir2/dir3

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

verwandte Informationen