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 25.10 ist auch mit Paket rust-coreutils 🇬🇧 eine neue Implementierung in der Programmiersprache Rust für Ubuntu verfügbar, und ab Ubuntu Version 26.04 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

Das Programm ist bis Ubuntu 24.04 im essentiellen Paket

  • coreutils

enthalten und deshalb auf jedem System installiert. Diese Variante beruht auf den altbekannten GNU-Utilities.

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

Ab 26.04 sind die rust-coreutils als Standard vorausgewählt. Siehe Artikel rust-coreutils zur Umstellung auf die GNU-Utilities.

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 22. Mai 2026 10:11 von kB erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell