Il comando dirname in Linux stampa un percorso di file con il suo componente finale rimosso. Questo sostanzialmente ti dà il percorso della directory dal percorso del file.
Ciò è particolarmente utile negli script bash in cui desideri estrarre il percorso della directory dal percorso del file lungo.
Il comando dirname è complementare al comando basename. Il comando basename estrae il nome del file dal percorso mentre dirname estrae il percorso della directory.
Ve lo mostro con alcuni esempi.
Esempi di comandi Dirname
Il comando dirname ha una sintassi semplice.
dirname OPTION PATH
L'uso del comando dirname con il percorso assoluto di un file darà il percorso della directory:
dirname /home/user/data/filename.txt
/home/user/data
Come il comando basename, anche il comando dirname è davvero stupido. Non riconosce davvero il percorso del file. Cerca solo le barre (/) e stampa tutto ciò che è prima dell'ultima barra. Fondamentalmente, puoi dargli qualsiasi stringa con / in esso e funzionerà su di esso.
Ad esempio, sto usando una stringa casuale qui senza nome di file. Puoi vedere che funziona ancora allo stesso modo e genera una stringa rimuovendo l'ultimo / e il testo dopo di esso.
Se il percorso non contiene una barra (/), genererà un punto (.) che implica la directory corrente.
Puoi anche usare dirname con più percorsi. Restituirà l'output per ogni percorso in una nuova riga:
Puoi usare l'opzione -z per ottenere il risultato nella stessa riga con output separati dal carattere NULL.
Utilizzo di dirname nello script bash
Ho mostrato alcuni esempi del comando dirname. Parliamo dell'uso di dirname negli script bash.
Supponiamo di avere una variabile di percorso del file e di voler ottenere il percorso della directory che contiene il file. Questo potrebbe essere un semplice script:
pathname="/home/dir/data/filename"
result=$(dirname "$pathname")
echo $result
Come accennato in precedenza, il comando dirname è integrato con il comando basename. A differenza di dirname, il comando basename stampa solo l'ultimo componente del percorso.
Spero che questo tutorial ti sia piaciuto. Come sempre, sentiti libero di porre domande o fornire suggerimenti nella sezione commenti.
Ti è piaciuto l'articolo? Per favore condividilo e aiutaci a crescere :)