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

Linux basename Command Tutorial für Anfänger (mit Beispielen)

Bei der Arbeit auf der Kommandozeile (insbesondere bei Shell-Skripten) interessiert Sie manchmal nur der Dateiname, aber was Ihnen zur Verfügung steht, ist der vollständige Pfad der Datei. Die Anforderung besteht also darin, die Verzeichniskomponente des Pfads zu entfernen. Sie werden froh sein zu wissen, dass es einen Befehl gibt - basename - das macht diese Arbeit.

In diesem Tutorial besprechen wir die Grundlagen von „basename“ anhand einiger leicht verständlicher Beispiele. Aber bevor wir darauf eingehen, ist es erwähnenswert, dass alle Beispiele hier auf einem Ubuntu 16.04 LTS-Rechner getestet wurden.

Linux-Basisname-Befehl

Mit dem Befehl basename können Sie Komponenten von Dateinamen entfernen, die nicht erforderlich sind. Es folgt die Syntax des Tools:

basename NAME [SUFFIX]
basename OPTION... NAME...

Und hier ist, was die Manpage dazu sagt:

basename - strip directory and suffix from filenames

Print NAME with any leading directory components removed. If specified, also remove a trailing
SUFFIX.

Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen eine gute Vorstellung davon vermitteln sollen, wie der basename-Befehl funktioniert.

Q1. Wie funktioniert der Basisname-Befehl?

Wenn Sie den Befehl „basename“ mit einem vollständigen Pfad zu einer Datei als Eingabe ausführen, gibt der Befehl standardmäßig den Dateinamen in der Ausgabe zurück. Zum Beispiel, als ich den folgenden Befehl ausgeführt habe:

basename /home/himanshu/Downloads/analytics.pdf

Ich habe die folgende Ausgabe:

analytics.pdf

Q2. Kann basename mehrere Eingaben verarbeiten?

Ja, kann es. Dazu müssen Sie jedoch die Befehlszeilenoption -a verwenden. Zum Beispiel, als ich den folgenden Befehl ausgeführt habe:

basename -a /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.png

Und hier ist die Ausgabe, die ich bekommen habe:

analytics.pdf
test.png

Q3. Wie erstelle ich auch eine Dateierweiterung für Basisnamensstreifen?

Manchmal möchten Sie vielleicht nur den Dateinamen abrufen, aber nicht seine Erweiterung. Nun, dies kann mit der Befehlszeilenoption -s erfolgen (wobei Sie das Suffix als Eingabe übergeben müssen).

Beispielsweise der folgende Befehl:

basename -s .pdf /home/himanshu/Downloads/analytics.pdf

erzeugte diese Ausgabe:

analytics

Q4. Wie lässt man jede Zeilenausgabe mit NUL enden?

Standardmäßig wird das Zeilenumbruchzeichen als Trennzeichen in der Ausgabe verwendet. Wenn Sie möchten, können Sie jedoch basename zwingen, NUL als Trennzeichen zu verwenden. Dies kann mit der Befehlszeilenoption -z erfolgen.

Zum Beispiel:

basename -az /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.png

Und hier ist die Ausgabe:

analytics.pdftest.png

Sie sehen hier also nicht das NUL-Zeichen. Dazu müssen Sie die Ausgabe in eine Datei umleiten und die Datei dann in einem Editor wie vim öffnen. Folgendes hat vim gezeigt:

Schlussfolgerung

Wie Sie sehen können, ist basename kein sehr funktionsreicher Befehl – ​​die Optionen, die er bietet, sind begrenzt, und die meisten davon wurden hier in diesem Tutorial besprochen. Wenn Sie mit dem Üben fertig sind, gehen Sie zur Manpage des Tools, um mehr darüber zu erfahren.


Linux
  1. Linux expand Command Tutorial für Anfänger (mit Beispielen)

  2. Linux-Factor-Befehls-Tutorial für Anfänger (mit Beispielen)

  3. Linux yes Command Tutorial für Anfänger (mit Beispielen)

  4. Linux nproc Command Tutorial für Anfänger (mit Beispielen)

  5. Linux tac Command Tutorial für Anfänger (mit Beispielen)

Linux Look Command Tutorial für Anfänger (mit Beispielen)

Linux-Lsattr-Befehls-Tutorial für Anfänger (mit Beispielen)

Linux tload Command Tutorial für Anfänger (mit Beispielen)

Linux znew Command Tutorial für Anfänger (mit Beispielen)

Linux zdump Command Tutorial für Anfänger (mit Beispielen)

Linux tr Command Tutorial für Anfänger (mit Beispielen)