Ci sono diversi realpathcomandi in giro.
L' realpathutilità è un wrapper per le realpathfunzioni della libreria ed è stata reinventata molte volte .
Debian era solita mantenere un realpathpacchetto ( separato da dwwwda woody ) che non è cambiato se non per quanto riguarda l'imballaggio e la documentazione dal 2001, ma ora è stato gradualmente eliminato. Questa utility è stata deprecata perché ora ci sono più alternative standard (GNU readlinke presto GNU realpath), ma al momento le utility GNU non lo avevano nemmeno readlink. Questa implementazione di realpathsupporta alcuni optionsper impedire la risoluzione del collegamento simbolico o produrre output con terminazione null.
BusyBox include anche il proprio realpathcomando (che non richiede opzioni).
I coreutils di GNU hanno introdotto un realpathcomando nella versione 8.15 nel gennaio 2012. Questo è un sostituto compatibile per BusyBox e Debian realpathe ha anche molte opzioni in comune con GNU readlink.
realpathha lo stesso effetto readlink -fdi GNU readlink. Ciò che distingue i due comandi (o piuttosto i vari realpathcomandi da readlink -f) sono le opzioni extra che supportano.
GNU realpathnon è deprecato; ha il problema opposto: è troppo nuovo per essere disponibile ovunque. Debian ometteva GNUrealpath dal suo coreutilspacchetto e si atteneva al suo realpath. Non so perché, dal momento che GNU realpathdovrebbe essere un sostituto drop-in. A partire da Debian jessie e Ubuntu 16.04, tuttavia, realpathviene utilizzato GNU .
Sui sistemi Linux, al momento, la soluzione migliore per canonicalizzare un percorso che può contenere collegamenti simbolici è readlink -f.
I sistemi BSD hanno un readlinkcomando, con capacità diverse da GNU readlink. In particolare, BSD readlinknon ha un'opzione per canonicalizzare i percorsi, attraversa solo il collegamento simbolico ad esso passato.
readlink, per inciso, ha avuto lo stesso problema - è stato anche inventato molte volte (non aggiungere questa utilità quando sono stati aggiunti collegamenti simbolici a Unix è stata una deplorevole omissione). Si è ora stabilizzato in diverse implementazioni con molti flag incompatibili (in particolare BSD vs. GNU).
readlink -fera in OpenBSD molto prima di GNU. Tutti NetBSD, FreeBSD e OpenBSD ora hannoreadlink -f(anche il tuo link lo menziona).realpathè in FreeBSD e IRIX da molto tempo (non so se è precedente a quello in Debian). Anche HPUX e IRIX hannoreadlink, sebbene non lo siano-f. Ilrealpathpacchetto in Debian sperimentale è ora quello di coreutils (come esperimento per vedere se rompe le cose). Il dwww sirealpathcomporta in modo più simile areadlink -equello GNU,readlink -fquindi non è un rimpiazzo completo