GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwenden des Linux-Dirname-Befehls in Bash-Skripten

Der Befehl dirname in Linux gibt einen Dateipfad aus, bei dem die letzte Komponente entfernt wurde. Dies gibt Ihnen im Grunde den Verzeichnispfad aus dem Dateipfad.

Dies ist besonders hilfreich in Bash-Skripten, wo Sie den Verzeichnispfad aus dem langen Dateipfad extrahieren möchten.

Der dirname-Befehl ist komplementär zum basename-Befehl. Der basename-Befehl extrahiert den Dateinamen aus path, während dirname den Verzeichnispfad extrahiert.

Lassen Sie es mich Ihnen anhand einiger Beispiele zeigen.

Dirname-Befehlsbeispiele

Der dirname-Befehl hat eine einfache Syntax.

dirname OPTION PATH

Die Verwendung des Befehls dirname mit dem absoluten Pfad einer Datei ergibt den Verzeichnispfad:

dirname /home/user/data/filename.txt
/home/user/data

Wie der basename-Befehl ist auch der dirname-Befehl eigentlich dumm. Es erkennt den Dateipfad nicht wirklich. Es sucht nur nach den Schrägstrichen (/) und gibt das aus, was vor dem letzten Schrägstrich steht. Grundsätzlich können Sie ihm jeden String mit / darin geben und es wird damit arbeiten.

Zum Beispiel verwende ich hier eine zufällige Zeichenfolge ohne Dateinamen. Sie können sehen, dass es immer noch genauso funktioniert und einen String ausgibt, der das letzte / und den Text danach entfernt.

Wenn der Pfad keinen Schrägstrich (/) enthält, wird ein Punkt (.) ausgegeben, der das aktuelle Verzeichnis impliziert.

Sie können dirname auch mit mehreren Pfaden verwenden. Die Ausgabe für jeden Pfad wird in einer neuen Zeile zurückgegeben:

Sie können die Option -z verwenden, um das Ergebnis in derselben Zeile mit durch NULL-Zeichen getrennten Ausgaben zu erhalten.

Dirname in Bash-Skript verwenden

Ich habe einige Beispiele für den dirname-Befehl gezeigt. Lassen Sie uns über die Verwendung von dirname in Bash-Skripten sprechen.

Angenommen, Sie haben eine Dateipfadvariable und möchten den Pfad zu dem Verzeichnis abrufen, das die Datei enthält. Dies könnte ein einfaches Skript sein:

pathname="/home/dir/data/filename"

result=$(dirname "$pathname")

echo $result

Wie ich bereits erwähnt habe, wird der dirname-Befehl durch den basename-Befehl ergänzt. Im Gegensatz zu dirname gibt der basename-Befehl nur die letzte Komponente des Pfads aus.

Ich hoffe, Ihnen hat dieses Tutorial gefallen. Wie immer können Sie im Kommentarbereich Fragen stellen oder Vorschläge machen.

Der Artikel hat Ihnen gefallen? Bitte teilen Sie es und helfen Sie uns zu wachsen :)


Linux
  1. Befehl nicht in Bash gefunden behoben

  2. Verwenden des Linux-Sleep-Befehls in Bash-Skripten

  3. Verwenden des Linux-Basisnamenbefehls in Bash-Skripten

  4. Beispiele für die Verwendung des Befehls dmsetup unter Linux

  5. Listen Sie die Datei mit dem Befehl ls in Linux mit vollständigem Pfad auf

Verlaufsbefehl in Linux (Bash-Verlauf)

So verwenden Sie den Echo-Befehl in Bash-Skripten unter Linux

Tutorial zur Verwendung des Timeout-Befehls unter Linux

Planen Sie Jobs in Linux mit dem Befehl 'at'

Verwenden des Watch-Befehls unter Linux

Cut auf Linux Terminal verwenden