GNU/Linux >> Linux Esercitazione >  >> Linux

Comando del nome di base in Linux

basename è un'utilità della riga di comando che rimuove la directory e il suffisso finale dai nomi di file dati.

Utilizzo del basename Comando #

Il basename comando supporta due formati di sintassi:

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

basename prende un nome file e stampa l'ultimo componente del nome file. Facoltativamente, può anche rimuovere qualsiasi suffisso finale. È un semplice comando che accetta solo poche opzioni.

L'esempio più semplice è stampare il nome del file con le directory principali rimosse:

basename /etc/passwd

L'output includerà il nome del file:

passwd

Il basename il comando rimuove qualsiasi / finale caratteri:

basename /usr/local/basename /usr/local

Entrambi i comandi produrranno lo stesso output:

local
local

Per impostazione predefinita, ogni riga di output termina con un carattere di nuova riga. Per terminare le righe con NUL , usa -z (--zero ) opzione.

Ingressi multipli #

Il basename comando può accettare più nomi come argomenti. Per farlo, invoca il comando con -a (--multiple ), seguito dall'elenco dei file separati da uno spazio.

Ad esempio, per ottenere i nomi dei file di /etc/passwd e /etc/shadow correresti:

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

Rimozione di un suffisso finale #

Per rimuovere qualsiasi suffisso finale dal nome del file, passa il suffisso come secondo argomento:

basename /etc/hostname name
host

In genere, questa funzione viene utilizzata per rimuovere le estensioni dei file:

basename /etc/sysctl.conf .conf
sysctl

Un altro modo per rimuovere un suffisso finale è specificare il suffisso con -s (--suffix=SUFFIX ) opzione:

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

Questo modulo di sintassi ti consente di rimuovere qualsiasi suffisso finale da più nomi:

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

Esempio #

L'esempio seguente mostra come utilizzare il basename comando all'interno di un bash for loopper rinominare tutti i file che terminano con ".jpeg" nella directory corrente sostituendo l'estensione del file da ".jpeg" a ".jpg":

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

Se stai usando bash come shell, invece di invocare basename , puoi utilizzare la rimozione dell'estensione finale utilizzando l'espansione dei parametri della shell.

Conclusione #

Il basename il comando rimuove qualsiasi directory iniziale e suffisso finale dal nome.

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. Comando ifconfig di Linux

  2. Comando Linux mv

  3. Linux du comando

  4. comando IP Linux

  5. comando cd di Linux

Comando gratuito in Linux

Comando Sudo in Linux

Individua il comando in Linux

Comando W in Linux

Al comando in Linux

Comando Df in Linux