Dirname
Entwickler (en) | Verschiedene Open Source und kommerziell Entwickler |
---|---|
Betriebssystem | Unix, Unix-artig, Ibm i |
Plattform | Plattformübergreifend |
Typ | Befehl |
Lizenz | CoreUtils: GPLV3+ |
Dirname
ist ein Standard Computer Programm an Unix und Unix-artig Betriebssysteme. Wann Dirname
wird gegeben a Pfadname, es wird jedes Suffix löschen, der mit dem letzten Schrägstrich beginnt ('/'
) Charakter und geben das Ergebnis zurück. Dirname
wird in der beschrieben Einzel -Unix -Spezifikation und wird in erster Linie in verwendet Shell -Skripte.
Geschichte
Die Version von Dirname
gebündelt GNU CoreUtils wurde von David Mackenzie und Jim Meyering geschrieben.[1] Der Befehl ist als separates Paket für verfügbar Microsoft Windows Im Rahmen des Unxutils Sammlung von einheimisch Win32 Häfen von gemeinsamen GNU-Unix-ähnlichen Versorgungsunternehmen.[2] Das Dirname Der Befehl wurde auch auf die portiert Ibm i Betriebssystem.[3]
Verwendungszweck
Das Einzel -Unix -Spezifikation zum Dirname
ist:
Dirname String
-
Saite
- A Pfadname
Beispiele
DirName wird den Namen des Verzeichnispfads von einem Pfadname abrufen, der alle nachfolgenden Schrägstriche ignoriert
$ DirName /home/martin/docs/base.wiki/home/martin/docs $ DIRNAME/HOME/MARTIN/DOCS/./home/martin/docs $ DirName/home/martin/docs//Home/Martin $ Dirname Base.wiki. $ Dirname //
Leistung
Seit Dirname
akzeptiert nur einen Operanden, seine Verwendung innerhalb der innere Schleife von Shell -Skripten können sich nachteilig auf die Leistung auswirken. In Betracht ziehen
während lesen Datei; tun Dirname "$ Datei" erledigt < some-input
Der obige Auszug würde für jede Eingabezeile einen separaten Prozessaufruf verursachen. Aus diesem Grund wird die Schalensubstitution normalerweise stattdessen verwendet
Echo "$ {Datei%/*}";
oder wenn relative Pfadnamen auch behandelt werden müssen
wenn [ -n "$ {Datei##*/*}" ]; dann Echo "." anders Echo "$ {Datei%/*}"; fi
Beachten Sie, dass diese Griffe nachverfolgt als DirName.
Missverständnisse
Wir könnten denken, dass Wege, die in einem nachfolgenden Schrägstrich enden, ein Verzeichnis sind. Tatsächlich repräsentiert der nachverfolgende Schrägstrich jedoch alle Dateien im Verzeichnis.
/home/martin/docs/.
Der richtige Weg, um einen Pfad als Verzeichnis darzustellen, ist mit einem nachfolgenden Schrägstrich und einer Periode.[Nach wem?]
Siehe auch
Verweise
- ^ "DirName (1) - Linux Man Page".
- ^ "Native Win32 -Ports einiger GNU -Dienstprogramme". Unxutils.SourceForge.net.
- ^ IBM. "IBM System I Version 7.2 Programmierung Qshell" (PDF). Archiviert (PDF) vom Original am 2020-09-18. Abgerufen 2020-09-05.
Externe Links
- Die einzelne Unix -Spezifikation, Version 4 von Die offene Gruppe : Gibt den Verzeichnisanteil eines Pfadnamens zurück - Shell and Utilities Referenz,
- Linux Benutzerbefehle Handbuch - -
- OpenBSD Allgemeine Befehle Handbuch - -