Verwendung des basename-Befehls in Bash-Skripten

Popular:
VERBESSERE DEINEN SERVER-SETUP! WENDEN SIE AVA AN UND STARTE MIT EINEM 15% RABATT
VERWENDE PROMO:

Warum basename in Skripten verwenden?

Hier sind nur einige Beispiele für reale Skripting-Bedürfnisse:

Praktische Anwendungsfälle in Bash-Skripten

📁 1. Durchlaufen von Dateien mit Protokollierung

Dieses Skript durchläuft .log-Dateien, extrahiert den Namen ohne Erweiterung und protokolliert jede Aktion. basename vereinfacht die Handhabung von Dateinamen ohne komplexes String-Slicing.

📂 2. Verwendung von basename für dynamische Dateipfade

Angenommen, Sie erhalten vollständige Pfade von Benutzereingaben oder einem anderen Prozess:

Die Verwendung von basename in Ihrem Skript gewährleistet Flexibilität beim Arbeiten mit dynamischen Dateipfaden, insbesondere in Umgebungen wie einem Linux VPS, in denen Protokolle, Konfigurationsdateien und Backups in verschiedenen Verzeichnissen gespeichert sein können. Dies macht Ihr Skript robust, unabhängig davon, ob es einen vollständigen Pfad wie /var/log/syslog oder eine relative Datei wie ./config.txt erhält.

🧪 3. Kombinieren von basename mit dirname

Verwenden Sie sie zusammen, um Pfadelemente zu isolieren:

Entfernen von Dateierweiterungen mit basename

Wenn Sie bekannte Erweiterungen entfernen möchten:

⚠️ Hinweis: Dies funktioniert nur, wenn die Endung genau übereinstimmt. Also .txt funktioniert, aber .TXT oder .tar.gz nicht, es sei denn, es wird ausdrücklich angegeben.

Für mehrere Erweiterungen kombinieren Sie basename mit anderen Tools:

Oder:

basename vs Parametererweiterung

Während basename intuitiv ist, startet es einen Unterprozess. Für leistungskritische Skripte oder große Schleifen ziehen Sie reine Bash-Alternativen vor:

Bash-native Entsprechung:

Entfernen Sie die Erweiterung mit nativer Bash:

✅ Schneller als das Aufrufen von externem basename.

Beispiel: Dateien im Bulk umbenennen

Angenommen, Sie möchten allen .jpg-Dateien das heutige Datum voranstellen:

Dies verwendet basename, um die ursprünglichen Namen beizubehalten, während eine benutzerdefinierte Zeichenfolge vorangestellt wird.

Verwenden Sie basename “$0” für Skript-Intros