「realpath」と「readlink -f」の違いは何ですか

「realpath」と「readlink -f」の違いは何ですか

realpath私はこのコマンドとそれがもう使われておらず、readlink -f今推奨される方法についてたくさん読んでいます。また、readlinkにこれらの機能が不足してrealpathが導入されたところもあり、一度導入されるとrealpathはもはや必要なくなり、ほとんどのオペレーティングシステムベンダーはこれをサポートしません。

readlink -f私が質問した理由は、私も「非常に似ている」コマンドで推薦する人をたくさん見ましたrealpath。実際の違いは何ですか?

ベストアンサー1

周辺にはいくつかのコマンドがありますrealpath

このrealpathユーティリティはラッパーです。realpathライブラリ機能は何度も再作成されました。移流

Debianは一度realpathパック(分離~からdwww~から愚かな)は2001年以来、パッケージングと文書化を除いて変更されておらず、現在段階的に廃止されています。現在、より多くの標準的な選択肢(GNUreadlinkとまもなくGNU)があるので、このユーティリティはもう使用されていませんが、realpath当時はGNUユーティリティはreadlinkまったく存在しませんでした。この実装はrealpath一部をサポートします。optionsシンボリックリンクがヌル終了出力を確認または生成するのを防ぎます。 忙しい箱自分のものを含むrealpathコマンド(オプションなし)

GNUコアツール紹介したrealpathコマンド入力バージョン 8.152012年1月。これはBusyBoxやDebianと互換性のある代替手段であり、realpathGNUと同じオプションがたくさんあります。readlink

realpathreadlink -fGNUと同じ効果がありますreadlink。これら2つのコマンド(またはrealpathのさまざまなコマンドreadlink -f)の違いは、サポートする追加オプションです。

GNU はrealpath廃止されました。逆の問題があります。 GNUはあまりにも新しく、どこでも利用できません。 DebianはGNU 省略realpathそれからcoreutils荷物を包んで自分で捕まえてくださいrealpath。なぜなのかわかりません。 GNUはrealpathすぐに代用できる必要があるからです。しかし、Debian jessieとUbuntu 16.04以降はrealpathGNUが使用されています。

現在、Linuxシステムでシンボリックリンクを含めることができるパスを正規化するための最良のオプションはですreadlink -f

BSDシステムではreadlinkGNUとは機能が異なるコマンドですreadlink。特に、BSDにはreadlinkパスを正規化するオプションはなく、渡されたシンボリックリンクのみを通過します。

readlinkところで、同じ問題 - それも同じです。何度も発明(Unixにシンボリックリンクを追加するときにこのユーティリティが追加されていないのは残念です。)現在、多くの互換性のないフラグを持つ複数の実装(特にBSD対GNU)で安定しています。

おすすめ記事