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

So erhalten Sie den Dateinamen aus dem vollständigen Pfad in Linux

Der vollständige Pfad einer Datei in Linux bezieht sich auf die vollständige Adresse einschließlich Verzeichnissen und Unterverzeichnissen, unter denen die Datei gefunden werden kann. Jedes Betriebssystem hat verschiedene Varianten des vollständigen Pfads einer Datei.

Unter Linux sieht es ungefähr so ​​aus:

/home/user/Documents/test.txt

Dies ist der vollständige Dateipfad der Datei test.txt .

Wenn Sie manuell mit einem Dateipfad umgehen, ist es einfach, den Dateinamen zu erhalten, aber wenn Sie ein Skript für eine Art Automatisierung verwenden, müssen Sie den Dateinamen in bestimmten Szenarien möglicherweise extrahieren.

Mal sehen, wie wir den Dateinamen unter Linux aus dem vollständigen Pfad extrahieren können.

Basisnamen-Befehl verwenden

Der ganze Zweck des basename-Befehls besteht darin, den Dateinamen aus einem Dateipfad abzurufen. Obwohl es nicht allzu schwierig ist, den Dateinamen aus einem vollständigen Pfad zu erhalten, erledigt basename dies automatisch für Sie und Sie müssen sich nicht die Mühe machen, den Dateipfad zu analysieren usw.

Syntax ist:

$ basename full_file_path
$ basename /var/log/syslog   [example command]

Verwenden Sie den -a ein Argument, um mehrere Pfade zu übergeben.

$ basename -a /var/log/syslog /var/log/dpkg.log

Bash-Parameterersetzung verwenden

Ersetzungen von Bash-Parametern sind eine Möglichkeit, eine Variable im laufenden Betrieb zu ändern. Um diese Methode zu verwenden, müssen wir daher den Dateipfad in einer Variablen speichern.

$ fullpath="/var/log/syslog"

Jetzt wenden wir die Parameterersetzung an und speichern den Wert in einer anderen Variablen.

$ filename=${fullpath##*/}
$ echo $filename

Im Grunde macht das folgendes:Es shreddert den Teil vor dem letzten ‘/’ in „vollständiger Pfad ’ und behält nur den Rest des Strings, der nichts als der Dateiname ist.

Schlussfolgerung

In diesem Artikel haben wir zwei Möglichkeiten kennengelernt, um einen Dateinamen aus einem vollständigen Dateipfad in Linux zu erhalten. Wenn Sie mehr über den Befehl basename erfahren möchten und Parameter Substitutionen in Bash, vergewissern Sie sich, dass Sie die entsprechenden Manpages durchgehen mit:

$ man basename
$ man bash

Danke fürs Lesen und teilen Sie uns unten Ihre Gedanken und Fragen mit!


Linux
  1. Wie zeigt man den vollständigen Pfad einer Datei oder eines Verzeichnisses im Terminal an?

  2. Wie erhalte ich den vollständigen Pfad einer Datei?

  3. Wie finde ich den vollständigen Pfad des C++-Linux-Programms von innen heraus?

  4. Wie bekomme ich den Hostnamen von der IP (Linux)?

  5. Wie extrahiert man den Dateinamen ohne die Erweiterung aus einem vollständigen Pfad?

So verwenden Sie den md5sum-Befehl unter Linux

So erhalten Sie die Größe eines Verzeichnisses in Linux

So entfernen Sie (^M) Zeichen aus einer Datei in Linux

Wie kann ich die Länge einer Videodatei von der Konsole abrufen?

Wie erhalte ich die URL der Dropbox-Datei von der Befehlszeile?

Wie bekomme ich eine Netzmaske von Bash?