Basisname und Verzeichnisname: Zwei Befehle, die Sie kennen sollten

Terminal Shell Linux-Befehle

Manchmal zielen einige Tutorials darauf ab, etwas exotischere und seltsamere Befehle zu erklären, andererseits gibt es einige, die serielle Distributionen enthalten und nicht so beliebt sind wie CD, LS, Katze usw., aber sie sind genauso praktisch. In diesem Tutorial werde ich Ihnen zeigen, was mit zwei dieser Befehle getan werden kann: Basisname und sag es mir.

Vielleicht a priori scheinen sie Ihnen absurd und dass sie keinen Nutzen haben, aber sie haben ziemlich praktische Anwendungen In einigen Fällen, z. B. in Skripten, in denen Sie einen Teil eines Pfads extrahieren müssen, z. B. den Namen der Datei oder des Verzeichnisses, damit ein anderer Befehl diese ...

Wofür sind sie?

Diese Befehle sind sehr einfach und seine Funktionen sind:

  • Basisname: Wird verwendet, um den Namen der Datei aus einem Pfad zu extrahieren.
  • dirname: Wird verwendet, um den Verzeichnisnamen aus einem Pfad zu extrahieren.

Anwendungsbeispiele

Hier können Sie einige sehen ejemplos wie man sie benutzt:

  • Zum Beispiel zu verwenden Basisname mit / etc / passwd, und dass es den Namen der Datei in seiner Ausgabe zurückgibt, in diesem Fall passwd:
basename /etc/passwd

  • Sie können auch angeben eine Erweiterung so dass es Ihnen den Namen der Datei ohne die Erweiterung gibt. Angenommen, Sie möchten den Namen eines Bildes /home/media/test.jpg ohne die Erweiterung jpg extrahieren (es würde zurückkehren prueba):
basename -s .jpg /home/media/prueba.jpg

  • Sie können sogar mehrere Routen gleichzeitig verarbeiten separat, dafür müssen Sie die Option -a verwenden:
basename -a /etc/passwd /var/log/boot.log

  • Um das Gegenteil zu tun und Ihnen den Namen des Verzeichnisses ohne den Namen der Datei zu geben, müssen Sie verwenden dirname. Wenn Sie es beispielsweise im Pfad /var/spool/mail/test.txt verwenden und / var / spool / mail zurückgeben möchten, verwenden Sie:
dirname /var/spool/mail/prueba.txt

Wie für eine Dienstprogramm in einem SkriptHier haben Sie ein anderes Beispiel. Stellen Sie sich vor, Sie haben ein einfaches Skript und darin einen Pfad, der variabel ist. Sie möchten jedoch, dass das Verzeichnis angezeigt wird, das eine Datei enthält, unabhängig von der Datei. In diesem Fall könnten Sie Folgendes haben:

pathname="/home/usuario/data/fichero"

result=$(dirname "$pathname")

echo $result

Natürlich wäre in diesem Skript der "Pfadname" immer dieselbe statische Angabe, die von der Konstanten am Anfang deklariert wurde, aber es kann Fälle geben, in denen dies nicht der Fall ist, und genau hier es wird praktisch. Zum Beispiel:

/*script para convertir una imagen gif en png*/

#!/bin/sh
for file in *.gif;do
    #Salir si no hay ficheros
    if [! -f $file];then
        exit
    fi
    b='basename $file .gif'
    echo NOW $b.gif is $b.png
    giftopnm $b.gif | pnmtopng >$b.png
done


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Gregory Ros sagte

    Ein gutes Beispiel für solche Dinge, die Sie beim Lernen als nutzlos ansehen, aber wenn Sie zum Thema kommen, sehen Sie, wie praktisch sie sind.