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

Holen Sie sich den letzten Verzeichnisnamen/Dateinamen in einem Dateipfadargument in Bash

Der folgende Ansatz kann verwendet werden, um einen beliebigen Pfad eines Pfadnamens zu erhalten:

some_path=a/b/c
echo $(basename $some_path)
echo $(basename $(dirname $some_path))
echo $(basename $(dirname $(dirname $some_path)))

Ausgabe:

c
b
a

Bash kann den letzten Teil eines Pfads erhalten, ohne den externen basename aufrufen zu müssen :

dir="/path/to/whatever/"
dir="${dir%/}"             # strip trailing slash (if any)
subdir="${dir##*/}"

Dies verwendet die Parametererweiterung von Bash, um den Teil der Zeichenfolge vor dem letzten (verbleibenden) Schrägstrich zu entfernen.


basename entfernt das Verzeichnispräfix eines Pfades:

$ basename /usr/local/svn/repos/example
example
$ echo "/server/root/$(basename /usr/local/svn/repos/example)"
/server/root/example

Um den Dateinamen ohne Verwendung externer Befehle zu drucken,

Ausführen:

fileNameWithFullPath="${fileNameWithFullPath%/}";
echo "${fileNameWithFullPath##*/}" # print the file name

Dieser Befehl muss schneller als basename ausgeführt werden und dirname .


Linux
  1. Vollständigen Pfad aus Bash-Skript abrufen?

  2. Verwenden des Linux-Basisnamenbefehls in Bash-Skripten

  3. Wie normalisiert man einen Dateipfad in Bash?

  4. Hinzufügen eines Zeitstempels zu einem Dateinamen mit mv in BASH

  5. Nehmen Sie den letzten Teil des Ordnerpfads in der Shell

Bash:In Datei schreiben

Bash-Quellbefehl

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

Vollständige Ansicht, wo die Pfadvariable in Bash festgelegt ist?

Verwenden des Linux-Dirname-Befehls in Bash-Skripten

Holen Sie sich das letzte Änderungsdatum der Datei in Linux