Linux-Befehle · 2 min read · Sep 17, 2025
Linux basename Befehl Tutorial für Anfänger (mit Beispielen)

Manchmal, während man an der Kommandozeile arbeitet (insbesondere beim Umgang mit Shell-Skripten), könnte man nur am Dateinamen interessiert sein, aber was einem zur Verfügung steht, ist der vollständige Pfad der Datei. Daher besteht die Anforderung darin, den Verzeichnisteil des Pfades zu entfernen.
Der basename Befehl in Linux ist ein Dienstprogramm, das verwendet wird, um den Basisnamen eines Datei- oder Verzeichnispfades zu extrahieren, indem alle führenden Verzeichnisteile und optionale Suffixe effektiv entfernt werden. Wenn ein vollständiger Pfad angegeben wird, gibt basename nur den Dateinamen oder das letzte Segment des Pfades zurück, was es nützlich für Skripting- und Dateimanipulationsaufgaben macht. Zum Beispiel würde basename für den Pfad /home/user/document.txt document.txt zurückgeben. Darüber hinaus können Benutzer ein Suffix angeben, das entfernt werden soll, wie .txt, sodass nur document übrig bleibt. Dieser Befehl vereinfacht den Umgang mit Dateinamen und Pfaden in Skripten, verbessert die Automatisierung und rationalisiert verschiedene Dateiverwaltungsprozesse.
Dieses Tutorial erklärt die Grundlagen von ‘basename’ anhand leicht verständlicher Beispiele. Aber bevor wir dazu kommen, ist es erwähnenswert, dass alle hier gezeigten Beispiele auf einem Ubuntu 24.04 LTS-Rechner getestet wurden.
Linux basename Befehl erklärt
Der basename Befehl ermöglicht es Ihnen, Komponenten von Dateinamen zu entfernen, die nicht benötigt werden. Folgendes ist die Syntax des Werkzeugs:
basename NAME [SUFFIX]
basename OPTION... NAME...Und hier ist, was die Man-Seite darüber sagt:
basename - strip directory and suffix from filenames
Print NAME with any leading directory components removed. If specified, also remove a trailing
SUFFIX.Folgendes sind einige Beispiele im Q&A-Stil, die Ihnen eine gute Vorstellung davon geben sollten, wie der basename Befehl funktioniert.
Q1. Wie funktioniert der basename Befehl?
Standardmäßig gibt der ‘basename’ Befehl, wenn Sie einen vollständigen Pfad zu einer Datei als Eingabe ausführen, den Dateinamen als Ausgabe zurück. Zum Beispiel, als ich den folgenden Befehl ausführte:
basename /home/himanshu/Downloads/analytics.pdfbekam ich die folgende Ausgabe:
analytics.pdfQ2. Kann basename mehrere Eingaben verarbeiten?
Ja, das kann es. Aber damit dies geschieht, müssen Sie die -a Kommandozeilenoption verwenden. Zum Beispiel, als ich den folgenden Befehl ausführte:
basename -a /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.pngUnd hier ist die Ausgabe, die ich bekam:
analytics.pdf
test.pngQ3. Wie kann ich basename dazu bringen, die Dateiendung ebenfalls zu entfernen?
Manchmal möchten Sie vielleicht nur den Dateinamen abrufen, aber nicht dessen Erweiterung. Dies kann mit der -s Kommandozeilenoption erfolgen (die erfordert, dass Sie das Suffix als Eingabe übergeben).
Zum Beispiel, der folgende Befehl:
basename -s .pdf /home/himanshu/Downloads/analytics.pdfproduzierte diese Ausgabe:
analyticsQ4. Wie kann ich sicherstellen, dass jede Zeilen-Ausgabe mit NUL endet?
Standardmäßig wird das Newline-Zeichen als Trennzeichen in der Ausgabe verwendet. Sie können jedoch basename zwingen, NUL als Trennzeichen zu verwenden, wenn Sie möchten. Dies kann mit der -z Kommandozeilenoption erfolgen.
Zum Beispiel:
basename -az /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.pngUnd hier ist die Ausgabe:
analytics.pdftest.pngSie sehen hier also nicht das NUL-Zeichen. Sie müssen die Ausgabe in eine Datei umleiten und dann die Datei in einem Editor wie vim öffnen. Hier ist, was vim zeigte:

Fazit
Wie Sie sehen können, ist basename kein sehr funktionsreicher Befehl - seine Optionen sind begrenzt, und die meisten davon wurden hier in diesem Tutorial besprochen. Sobald Sie mit dem Üben dieser fertig sind, gehen Sie zur Man-Seite des Werkzeugs, um mehr darüber zu erfahren.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.