Dirname
# Dirname

dirname è un programma per computer standard su Unix e sistemi operativi Unix-like. Quando a dirname viene passato un percorso (pathname), tale comando cancellerà qualsiasi suffisso che inizia con l'ultimo carattere slash ('/') e restituirà il risultato. Il comando dirname è descritto nella Single UNIX Specification ed è utilizzato principalmente negli shell script.

## Storia

La versione di dirname presente in GNU coreutils è stata scritta da David MacKenzie e Jim Meyering.

Il comando dirname è stato anche portato sul sistema operativo IBM i.

## Sintassi

La Single UNIX Specification per dirname è:

    string
       Un percorso

## Esempi

dirname recupererà il nome del percorso della directory da un nome del percorso ignorando eventuali barre finali:

## Prestazioni

Poiché dirname accetta un solo operando, il suo utilizzo all'interno del ciclo interno degli shell script può essere dannoso per le prestazioni. Si consideri il seguente codice:

L'estratto qui sopra causerebbe invocazioni di processo separate per ogni riga di input. Per questo motivo, in genere viene utilizzata invece la shell substitution:

oppure nel caso fosse necessario gestire anche i percorsi relativi:

Si noti che questi frammenti di codice gestiscono le barre finali in modo diverso da dirname.

## Idee erronee

Si potrebbe pensare che i percorsi che terminano con una barra finale siano una directory. Ma in realtà, la barra finale rappresenta tutti i file all'interno della directory.

Il modo corretto per rappresentare un percorso come una directory è quello di farlo terminare con una barra e un punto.

