Dirname

Dirname
Dirname example.png
Beispiel von Dirname Befehl
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

  1. ^ "DirName (1) - Linux Man Page".
  2. ^ "Native Win32 -Ports einiger GNU -Dienstprogramme". Unxutils.SourceForge.net.
  3. ^ IBM. "IBM System I Version 7.2 Programmierung Qshell" (PDF). Archiviert (PDF) vom Original am 2020-09-18. Abgerufen 2020-09-05.

Externe Links