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!