Навколо є кілька realpath
команд.
realpath
Утиліта є оболонкою навколо realpath
бібліотеки функцій і була заново багато разів .
Debian використовує для підтримки realpath
пакета ( відокремленого від dwww
так деревного ) , який не змінився , за винятком щодо упаковки і документації з 2001 року, але в даний час припинено. Ця утиліта була застаріла, оскільки зараз є більше стандартних альтернатив (GNU readlink
і незабаром GNU realpath
), але в той час у GNU утиліти взагалі не було readlink
. Ця реалізація realpath
підтримує декілька options
для запобігання символічної роздільної здатності посилань або отримання результату з нульовим завершенням.
BusyBox також включає власну realpath
команду (яка не приймає жодних варіантів).
GNU coreutils представив realpath
команду у версії 8.15 у січні 2012 року. Це сумісна заміна для BusyBox і Debian realpath
, а також має багато спільних варіантів з GNU readlink
.
realpath
має такий же ефект, як і readlink -f
у GNU readlink
. Що відрізняє дві команди (а точніше різні realpath
команди від readlink -f
) - це додаткові параметри, які вони підтримують.
GNU realpath
не застаріло; у нього є протилежна проблема: це занадто нове, щоб бути доступним скрізь. Debian використовував, щоб опустити GNUrealpath
зі свого coreutils
пакету і дотримуватися свого realpath
. Я не знаю чому, оскільки GNU realpath
має бути заміною. Щодо Debian jessie та Ubuntu 16.04, однак, GNU realpath
використовується.
На даний момент в системах Linux найкраще канонізувати шлях, який може містити символічні посилання readlink -f
.
Системи BSD мають readlink
команду з різними можливостями від GNU readlink
. Зокрема, BSD readlink
не має можливості канонізувати шляхи, він лише проходить передану до нього симпосилання.
readlink
, до речі, мала таку ж проблему - вона також була винайдена багато разів (не додавання цієї утиліти, коли символічні посилання були додані до Unix, було жалючим упущенням). Зараз він стабілізувався в декількох реалізаціях з багатьма несумісними прапорами (зокрема, BSD vs. GNU).
readlink -f
був у OpenBSD задовго до GNU. Усі NetBSD, FreeBSD і OpenBSD зараз єreadlink -f
(ваше посилання навіть згадує про це).realpath
був у FreeBSD та IRIX вже давно (не знаю, чи був він раніше у Debian). HPUX і IRIX також маютьreadlink
, хоча і ні-f
.realpath
Пакет в Debian експериментальної тепер один з Coreutils ( в якості експерименту , щоб побачити , якщо він ламає речі). Тимrealpath
більше не подобається,readlink -e
коли GNU схожий,readlink -f
так що це не повна заміна