Übersicht
Der Befehl 'basename' wird verwendet, um den Verzeichnisteil aus einem Dateipfad zu entfernen und nur den Dateinamen (oder den letzten Verzeichnisnamen) zu extrahieren. Dies ist sehr nützlich bei der Bearbeitung von Dateipfaden in Shell-Skripten, insbesondere wenn nur der Name der Datei benötigt wird.
Hauptfunktionen
- Extrahieren des Dateinamens aus einem Dateipfad
- Optionales Entfernen eines angegebenen Suffixes vom Dateinamen
- Bietet Stapelverarbeitung für mehrere Pfade
Hauptoptionen
Hier sind die wichtigsten Optionen, die mit dem Standardbefehl 'basename' verwendet werden können.
Grundlegende Operation und Filterung
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`basename-u` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Hier sind einige praktische Anwendungsbeispiele des Standardbefehls 'basename'.
Extrahieren des grundlegenden Dateinamens
basename /home/user/documents/report.pdf
Extrahiert nur den Dateinamen aus einem gegebenen Pfad.
Entfernen eines Suffixes
basename /var/log/syslog.log .log
Entfernt ein bestimmtes Suffix vom Dateinamen.
Extrahieren mehrerer Dateinamen
basename -a /etc/hosts /usr/bin/ls /tmp/test.txt
Extrahiert Dateinamen aus mehreren Pfaden gleichzeitig.
Verwendung von Null-Terminierung mit xargs
find . -maxdepth 1 -type f -print0 | xargs -0 basename -z
Verwendet die Null-terminierte Ausgabe sicher mit `xargs -0`.
Tipps & Hinweise
Erläuterung der Option basename-u
Die Option '-u', die im Befehlsnamen enthalten ist, ist keine gültige Option für den Standardbefehl 'basename'. Die GNU Coreutils 'basename'-Befehlsversion enthält keine '-u'-Option, und die Verwendung kann zu Fehlermeldungen wie 'basename: invalid option -- 'u'' führen. Wenn '-u' in einem bestimmten Skript oder einer Umgebung verwendet wird, handelt es sich wahrscheinlich um ein benutzerdefiniertes Skript oder einen Alias und nicht um den 'basename'-Befehl.
Kombination mit dirname
'basename' extrahiert nur den Dateinamen, während 'dirname' nur den Verzeichnispfad extrahiert. Die gemeinsame Verwendung dieser beiden Befehle ermöglicht die vollständige Trennung eines Dateipfads in Verzeichnis und Dateiname, was bei der Erstellung von Shell-Skripten sehr nützlich ist.
- Beispiel: path="/home/user/documents/report.pdf" echo "Verzeichnis: $(dirname "$path")" echo "Dateiname: $(basename "$path")"