Kurz notiert: es gibt Situationen, in denen man Pfade auflösen, also relative Pfade in absolute umwandeln möchte. Für Anwender, die dabei Konstruktionen mit pwd
und kompliziertes Parsing umgehen wollen, bietet sich realpath
aus den GNU Coreutils an.
Die Bedienung ist denkbar einfach: realpath
nimmt beliebig viele Pfade als Argumente auf und gibt die absoluten Pfade zeilenweise aus. Dabei werden standardmäßig auch Symlinks aufgelöst, sodass der „wahre“ Pfad, im Programmkontext auch physischer Pfad genannt, angezeigt wird.
Mit einigen Zusatzoptionen, die sich in der Manpage realpath(1) finden lassen, kann weiterhin das Verhalten angepasst werden. Hier sei zum Beispiel -e
erwähnt, das einen strikteren Modus aktiviert und überprüft, ob das letzte Element im Pfad überhaupt existiert – stanardmäßig ist dies nicht der Fall. Mit -s
kann die bereits beschriebene Auflösung von Symlinks deaktiviert werden.
Alles in allem, ein hilfreiches Werkzeug, besonders für Shellscripte. Der Quelltext von realpath
ist auch überschaubar und beispielsweise auf GitHub zu finden.