Có một số realpath
lệnh xung quanh.
Các realpath
tiện ích là một wrapper quanh realpath
chức năng thư viện và đã được tái phát minh nhiều lần .
Debian sử dụng để duy trì một realpath
gói ( tách ra từ dwww
từ gỗ ) mà vẫn không thay đổi, ngoại trừ liên quan đến bao bì và tài liệu từ năm 2001, nhưng hiện đã được loại bỏ. Tiện ích này không được chấp nhận vì hiện nay có nhiều lựa chọn thay thế tiêu chuẩn hơn (GNU readlink
và GNU sớm realpath
), nhưng tại thời điểm đó, các tiện ích GNU thậm chí không có readlink
. Việc triển khai này realpath
hỗ trợ một số options
để ngăn chặn độ phân giải liên kết tượng trưng hoặc tạo đầu ra kết thúc null.
BusyBox cũng bao gồm realpath
lệnh riêng của nó (không có tùy chọn).
GNU coreutils đã giới thiệu một realpath
lệnh trong phiên bản 8.15 vào tháng 1 năm 2012. Đây là một sự thay thế tương thích cho BusyBox và Debian realpath
, và cũng có nhiều tùy chọn chung với GNU readlink
.
realpath
có tác dụng tương tự như readlink -f
với GNU readlink
. Điều phân biệt hai lệnh (hay đúng hơn là các realpath
lệnh khác nhau readlink -f
) là các tùy chọn bổ sung mà chúng hỗ trợ.
GNU realpath
không bị phản đối; nó có một vấn đề ngược lại: nó quá mới để có mặt ở mọi nơi. Debian đã sử dụng để loại bỏ GNUrealpath
khỏi coreutils
gói của nó và tự gắn bó với nó realpath
. Tôi không biết tại sao, vì GNU realpath
phải là một sự thay thế thả vào. Tuy nhiên, kể từ Debian jessie và Ubuntu 16.04, GNU realpath
được sử dụng.
Trên các hệ thống Linux, tại thời điểm này, đặt cược tốt nhất của bạn để hợp thức hóa một đường dẫn có thể chứa các liên kết tượng trưng là readlink -f
.
Các hệ thống BSD có một readlink
lệnh, với các khả năng khác nhau từ GNU readlink
. Cụ thể, BSD readlink
không có tùy chọn để chuẩn hóa các đường dẫn, nó chỉ đi qua liên kết tượng trưng được truyền tới nó.
readlink
, tình cờ, có cùng một vấn đề - nó cũng được phát minh nhiều lần (không thêm tiện ích này khi các liên kết tượng trưng được thêm vào Unix là một thiếu sót đáng tiếc). Hiện tại nó đã ổn định trong một số triển khai với nhiều cờ không tương thích (cụ thể là BSD so với GNU).
readlink -f
đã ở OpenBSD từ lâu trước GNU. Tất cả NetBSD, FreeBSD và OpenBSD hiện córeadlink -f
( liên kết của bạn thậm chí đề cập đến nó).realpath
đã có trong FreeBSD và IRIX trong một thời gian dài (không biết liệu nó có trước phiên bản Debian không). HPUX và IRIX cũng córeadlink
, mặc dù không-f
. Cácrealpath
gói trong thực nghiệm Debian bây giờ là một từ coreutils (như là một thử nghiệm để xem nếu nó phá vỡ mọi thứ). Dwwwrealpath
hoạt động giống nhưreadlink -e
trong khi GNU giống nhưreadlink -f
vậy, nó không phải là một thay thế hoàn toàn