GNU/Linux >> Znalost Linux >  >> Linux

Basename Command v Linuxu

basename je nástroj příkazového řádku, který odstraňuje adresář a koncovou příponu z daných názvů souborů.

Použití basename Příkaz #

basename příkaz podporuje dva formáty syntaxe:

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

basename vezme název souboru a vytiskne poslední složku názvu souboru. Volitelně může také odstranit jakoukoli koncovou příponu. Je to jednoduchý příkaz, který přijímá pouze několik možností.

Nejzákladnějším příkladem je tisk názvu souboru s odstraněnými hlavními adresáři:

basename /etc/passwd

Výstup bude obsahovat název souboru:

passwd

basename příkaz odstraní všechny koncové / znaky:

basename /usr/local/basename /usr/local

Oba příkazy vytvoří stejný výstup:

local
local

Ve výchozím nastavení končí každý výstupní řádek znakem nového řádku. Pro ukončení řádků NUL , použijte -z (--zero ).

Více vstupů #

basename příkaz může přijmout více jmen jako argumenty. Chcete-li tak učinit, vyvolejte příkaz s -a (--multiple ) a poté seznam souborů oddělených mezerou.

Chcete-li například získat názvy souborů /etc/passwd a /etc/shadow běželi byste:

basename -a /etc/passwd /etc/shadow
passwd
shadow

Odebrání koncové přípony #

Chcete-li z názvu souboru odstranit jakoukoli koncovou příponu, předejte příponu jako druhý argument:

basename /etc/hostname name
host

Obecně se tato funkce používá k odstranění přípon souborů:

basename /etc/sysctl.conf .conf
sysctl

Dalším způsobem, jak odstranit koncovou příponu, je zadat příponu pomocí -s (--suffix=SUFFIX ) možnost:

basename -s .conf /etc/sysctl.conf
sysctl

Tento formulář syntaxe vám umožňuje odstranit jakoukoli koncovou příponu z více jmen:

basename -a -s .conf /etc/sysctl.conf /etc/sudo.conf
sysctl
sudo

Příklad #

Následující příklad ukazuje, jak použít basename příkaz uvnitř bash for loop pro přejmenování všech souborů odesílaných na „.jpeg“ v aktuálním adresáři nahrazením přípony souboru z „.jpeg“ na „.jpg“:

for file in *.jpeg; do
    mv -- "$file" "$(basename $file .jpeg).jpg"
done

Pokud jako svůj shell používáte bash, místo vyvolání basename , můžete použít protažení koncového rozšíření pomocí Shell Parameter Expansion.

Závěr č.

basename příkaz odstraní z názvu jakýkoli úvodní adresář a koncovou příponu.

Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.


Linux
  1. Linuxový příkaz mv

  2. Linux du command

  3. Linuxový ip příkaz

  1. Linux příkaz ifconfig

  2. Linux Time Command

  3. Linux cd příkaz

  1. Příkaz Ping v Linuxu

  2. Linux Watch Command

  3. Příkaz Xargs v Linuxu