Dateipfade normieren und relativierenGelegentlich möchte man einen Dateipfad relativ zu einem beliebigen Basisverzeichnis darstellen (nicht unbedingt zum Arbeitsverzeichnis). Dazu kann die Funktionrelpath verwandt werden. Beispiel:
path=a/b/c base=../x/y pwd # Ausgabe: /usr/dumpf relpath $base $path # Ausgabe: ../../dumpf/a/b/c relpath ../x/./y ./a/../a/b/c .. - und . -Komponenten befreit werden. Und auch Dateinamen, die
Leerzeichen enthalten - eine gängige Stolperfalle für Shellscripte - sollen
korrekt verarbeitet werden.
Die Funktion lässt sich mit einem oder zwei Parametern aufrufen: relpath path Der Pfad relpath -p base pathDer Pfad Wenn beide Pfade gleich sind, wird ohne Option ein Leerstring ausgegeben, mit Option
|