Linux Command · 2 min read · Sep 17, 2025

Tutorial sul comando basename di Linux per principianti (con esempi)

A volte, mentre si lavora sulla riga di comando (soprattutto quando si trattano script shell), potrebbe interessarti solo il nome del file, ma ciò che hai a disposizione è il percorso completo del file. Quindi, la necessità è quella di rimuovere il componente della directory del percorso.

Il comando basename in Linux è un’utilità utilizzata per estrarre il nome base di un file o di un percorso di directory, rimuovendo efficacemente eventuali componenti di directory iniziali e suffissi opzionali. Quando fornito con un percorso completo, basename restituisce solo il nome del file o l’ultimo segmento del percorso, rendendolo utile in attività di scripting e manipolazione dei file. Ad esempio, dato il percorso /home/user/document.txt, basename restituirebbe document.txt. Inoltre, gli utenti possono specificare un suffisso da rimuovere, come .txt, lasciando solo document. Questo comando semplifica la gestione dei nomi dei file e dei percorsi negli script, migliorando l’automazione e semplificando vari processi di gestione dei file.

Questo tutorial spiegherà le basi di ‘basename’ utilizzando esempi facili da capire. Ma prima di passare a questo, vale la pena menzionare che tutti gli esempi qui sono stati testati su una macchina Ubuntu 24.04 LTS.

Comando basename di Linux spiegato

Il comando basename ti consente di rimuovere componenti dai nomi dei file che non sono necessari. Di seguito è riportata la sintassi dello strumento:

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

Ecco cosa dice la pagina man al riguardo:

basename - strip directory and suffix from filenames  
  
Print NAME with any leading directory components removed. If specified, also remove a trailing   
SUFFIX.

Di seguito sono riportati alcuni esempi in stile Q&A che dovrebbero darti una buona idea di come funziona il comando basename.

Q1. Come funziona il comando basename?

Per impostazione predefinita, se esegui il comando ‘basename’ con un percorso completo a un file come input, il comando restituisce il nome del file in output. Ad esempio, quando ho eseguito il seguente comando:

basename /home/himanshu/Downloads/analytics.pdf

Ho ottenuto il seguente output:

analytics.pdf

Q2. Può basename gestire più input?

Sì, può. Ma affinché ciò accada, devi utilizzare l’opzione della riga di comando -a. Ad esempio, quando ho eseguito il seguente comando:

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

Ecco l’output che ho ottenuto:

analytics.pdf  
test.png

Q3. Come fare per far sì che basename rimuova anche l’estensione del file?

A volte, potresti voler ottenere solo il nome del file ma non la sua estensione. Questo può essere fatto utilizzando l’opzione della riga di comando -s (che richiede di passare il suffisso come input).

Ad esempio, il seguente comando:

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

ha prodotto questo output:

analytics

Q4. Come fare per far sì che ogni riga di output termini con NUL?

Per impostazione predefinita, il carattere di nuova riga viene utilizzato come separatore nell’output. Tuttavia, puoi forzare basename a utilizzare NUL come separatore se lo desideri. Questo può essere fatto utilizzando l’opzione della riga di comando -z.

Ad esempio:

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

Ecco l’output:

analytics.pdftest.png

Quindi non vedi qui il carattere NUL. Devi reindirizzare l’output a un file e poi aprire il file in un editor come vim. Ecco cosa ha mostrato vim:

Conclusione

Come puoi vedere, basename non è un comando molto ricco di funzionalità - le sue opzioni sono limitate e la maggior parte di esse è stata discussa qui in questo tutorial. Una volta che hai finito di esercitarti con questi, vai alla pagina man dello strumento per saperne di più su di esso.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.