dirname

Dirname
software
Esempio di comando dirname
Esempio di comando dirname
Esempio di comando dirname
GenereUtility
SviluppatoreDavid MacKenzie, Jim Meyering
Sistema operativoUnix-like
Multipiattaforma
Licenzacoreutils: GPLv3+
(licenza libera)

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.

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

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

La Single UNIX Specification per dirname è:

dirname string 
string
Un percorso

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

$ dirname /home/marco/documenti/base.wiki /home/marco/documenti  $ dirname /home/marco/documenti/. /home/marco/documenti  $ dirname /home/marco/documenti/ /home/marco  $ dirname base.wiki .  $ dirname / / 

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:

 while read file; do    dirname "$file"  done < dell'input 

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:

 echo "${file%/*}"; 

oppure nel caso fosse necessario gestire anche i percorsi relativi:

 if [ -n "${file##*/*}" ]; then    echo "."  else    echo "${file%/*}";  fi 

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

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.

/home/marco/documenti/. 

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

  1. ^ (EN) dirname(1) – Linux User Commands Manual, su linux.die.net. URL consultato il 26 gennaio 2022.
  2. ^ (EN) dirname – Commands & Utilities Reference, The Single UNIX Specification, Issue 7, su opengroup.org, The Open Group. URL consultato il 26 gennaio 2022.
  3. ^ (EN) IBM, System i 7.2, Programming Qshell, su ibm.com, p. 90. URL consultato il 5 settembre 2020.

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica