Omvendt av basename - bash

Omvendt av basename - bash
I bash, basename brukes ofte til å trekke ut filnavnet fra en gitt bane eller URL; Imidlertid er det situasjoner der du kanskje trenger å gjøre det motsatte, som å trekke ut katalogstien fra en gitt filsti. Det er her dirname Kommandoen kommer i spill, som er det motsatte av basename, Denne artikkelen vil forklare hva som er motsatt av basename og hvordan du bruker den i bash.

Omvendt av basename

De dirname Kommando brukes til å trekke ut katalogstien fra en gitt filsti da denne kommandoen tar et enkelt argument, som er filstien du vil trekke ut katalogstien fra. Her er et eksempel på bashskriptet som bruker dirname For å trekke ut katalogstien fra en filsti:

#!/bin/bash
Path = "/Home/Aaliyan/Documents/Myfiles/Bashfile1.sh "
dir = $ (dirname "$ sti")
Ekko "Katalogsti: $ dir"

I dette skriptet definerer vi en variabel bane som inneholder en filbane og deretter bruker dirname Kommando for å trekke ut katalogstien fra banevariabelen og lagre den i en ny variabel kalt DIR. Til slutt bruker vi Echo -kommandoen for å skrive ut katalogstien til konsollen, når du kjører dette skriptet, bør du se følgende utdata:

De dirname Kommando kan også brukes til å trekke ut katalogstien til en fil som ligger i samme katalog som skriptet ditt, du kan bruke RealPath -kommandoen.

#!/bin/bash
sti = "./Bashfile1.sh "
Dir = $ (RealPath $ (Dirname "$ Path"))
Ekko "Katalogsti: $ dir"

Skriptet setter først banen variabel til den relative filbanen til Bashfile1.sh Og neste bruker manuset dirname Kommando for å trekke ut katalogstien fra filstien, dette returnerer en relativ katalogvei.

For å konvertere den relative banen til en absolutt bane, bruker skriptet RealPath -kommandoen, som tar den relative banen som et argument og returnerer den absolutte banen. Til slutt skriver skriptet ut den absolutte katalogstien ved hjelp av Echo -kommandoen:

Konklusjon

De dirname Kommando i bash brukes til å trekke ut katalogstien fra en gitt filsti, denne kommandoen er nyttig i situasjoner der du trenger å manipulere filstier i bashskriptene dine. Ved å kombinere dirname med andre bashverktøy som basename, Du kan enkelt manipulere filstier og utføre komplekse operasjoner på filene dine.