Zum Inhalt springen

basename

aus Wikipedia, der freien Enzyklopädie

basename ist ein Unix-Programm und ein Teil des POSIX-Standards. Es gibt aus einem Pfadnamen den Dateinamen ohne führende Verzeichnisnamen aus. Wird ein Suffix angegeben, das mit der Dateiendung übereinstimmt, wird auch das Suffix entfernt.

Anwendungsbeispiele[Bearbeiten]

<syntaxhighlight lang="bash"> $ basename /home/alice/bild.jpg

 bild.jpg

$ basename /home/alice/bild.jpg .jpg

 bild

</syntaxhighlight>

Mag die Funktion des alleinstehenden Programms auf den ersten Blick zunächst trivial erscheinen, so ist es dennoch von großem Nutzen zur Erledigung von Teilaufgaben im Rahmen der Skriptprogrammierung.

Bibliotheksfunktion[Bearbeiten]

POSIX enthält basename auch als Funktion in der Programmiersprache C. In der Header-Datei libgen.h ist diese wie folgt deklariert:

<syntaxhighlight lang="c">

  1. include <libgen.h>

char *basename(char *path); </syntaxhighlight>

Rückgabewert ist der Teil von path nach dem letzten Pfadtrennzeichen /. In der POSIX-Variante ist dies entweder ein Pointer auf das dem letzten Trenner / folgende Zeichen oder ein Punkt ., falls path leer oder NULL ist. Die glibc-Variante gibt eine leere Zeichenkette zurück, falls path mit einem / endet oder nur daraus besteht. In beiden Implementierungen kann ein Pointer auf einen Teil von path oder einen statisch belegten Speicherbereich zurückgegeben werden, weshalb empfohlen wird, die Funktion mit einer Kopie des Pfades aufzurufen.

Siehe auch[Bearbeiten]

  • dirname erzeugt den (komplementären) Pfad bis zum letzten Trenner /.

Weblinks[Bearbeiten]

  • [[[:Vorlage:Man/posix]] basename(Vorlage:Man/posix)]: return non-directory portion of a pathname – Vorlage:Man/posix
  • [[[:Vorlage:Man/OpenBSD]] basename(Vorlage:Man/OpenBSD)]: return filename portion of pathname – Vorlage:Man/OpenBSD
  • [[[:Vorlage:Man/gnu]] basename(Vorlage:Man/gnu)]: Verzeichnis und Suffix von Dateinamen entfernen – Vorlage:Man/gnu
  • Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. OpenBSD; ehemals im Vorlage:Referrer (nicht mehr online verfügbar); (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.
  • Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Debian GNU/Linux; ehemals im Vorlage:Referrer (nicht mehr online verfügbar); (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.

Vorlage:Navigationsleiste Befehle der GNU core utilities