ubuntuusers.de

dirname

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Hinweis:

Dieser Artikel beschreibt die alte Implementation des Programms. Ab Ubuntu 24.04 ist auch mit Paket rust-coreutils 🇬🇧 eine neue Implementierung in der Programmiersprache Rust für Ubuntu verfügbar, und ab Ubuntu Version 25.10 wird die Implementierung in Rust als Standard bevorzugt.

Die Implementierung in Rust strebt Funktionsgleichheit mit der alten Implementierung an. Es können aber kleine Abweichungen auftreten. Dies bedeutet, dass das hier Beschriebene von der am eigenen Rechner vorgefundenen Situation abweichen kann.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png

Das Programm dirname schneidet den Dateinamen ab und gibt die vorangestellte Pfadangabe aus.

Installation

 

  • Bis Ubuntu 25.04 ist das Programm im essentiellen Paket coreutils enthalten und deshalb auf jedem System installiert. Diese Variante beruht auf den altbekannten GNU Core Utilities.

  • Ab 25.10 ist das Paket coreutils 🇬🇧 jedoch ein Metapaket, welches alternativ durch gnu-coreutils 🇬🇧 oder rust-coreutils 🇬🇧 oder weitere befriedigt werden kann.

  • Bei 25.10 und 26.04 installiert das Paket coreutils-from-uutils 🇬🇧 beide vorstehend genannten Pakete und aktiviert die rust-coreutils als Vorgabe. Siehe Artikel rust-coreutils zur Umstellung auf die GNU-Utilities.

  • Ab 26.10 soll aber coreutils-from-uutils nur noch die rust-coreutils installieren. Wer dann die alten gnu-coreutils verwenden will, muss coreutils-from-gnu 🇬🇧 manuell installieren.

Anwendung

dirname wird über das Terminal aufgerufen[1]:

dirname OPTION DATEIen 

Das Programm kennt diese Optionen:

Optionen von dirname
Option Beschreibung
--help Informationen zum Befehl ausgeben.
--version Informationen zur Version ausgeben.
-z
--zero
Ausgabezeilen mit Nullbyte statt mit Zeilenvorschub beenden.

Die beiden ersten Optionen ignorieren die Angabe DATEIen, die sonst obligatorisch ist und in Shell-Skripten sehr hilfreich sein kann. Als DATEI wird ein beliebiger Dateiname mit Pfad angegeben und man erhält dann den Pfadanteil aus DATEI, also alles vor dem letzten /. Dabei werden ggf. zuvor alle / am Ende entfernt. Man kann auch eine nichtleere Liste von Dateinamen so bearbeiten lassen. Gibt man einen Dateinamen ohne Pfadangabe an, wird das aktuelle Verzeichnis . zurückgegeben.

Möchte man hingegen den reinen Dateinamen erhalten, benötigt man den Befehl basename.

Das Programm macht reine Textbearbeitung der übergebenen Zeichenketten, die es als Dateinamen mit Pfadangabe interpretiert. Die bedeutet insbesondere, dass zu den Dateinamen keine Dateien existieren müssen.

Beispiele

  • dirname /etc/passwd 

    /etc
  • dirname datei 

    .
  • dirname ~/datei 

    /home/user
  • dirname ../andererUser/Musik/lied.mp3 

    ../andererUser/Musik
  • Wenn man als DATEI den Namen eines Ordners angibt, erfolgt genau dieselbe Behandlung wie bei Angabe des Namens einer regulären Datei, d.h. der Typ des Datei spielt keine Rolle für das Arbeitsergebnis. Man teste z.B. diesen Befehl:

    dirname  //////$PWD////// $PWD $PWD/. $PWD/dev/null $PWD/../../../../ 

Diese Revision wurde am 25. September 2026 18:21 von Ruth-Wies erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell