実際のパス:--relative-baseと--relative-to

実際のパス:--relative-baseと--relative-to

coreutilsからrealpath

--relative-to=file指定されたファイルに基づいて解決されたファイル名を印刷します。このオプションは-mファイルの存在に関連し、オプションの後に続きます。-e

--relative-base=baseこのオプションは一緒に使用すると有効で、ファイルがデフォルトファイルの子である場合にのみ相対名が出力されるように--relative-to出力を制限します。--relative-toそれ以外の場合は絶対ファイル名を出力します。指定しない場合、--relative-to基本の子は基本に基づいて印刷されます。指定した場合、--relative-toこのオプションを適用するには、そのディレクトリがこのディレクトリのサブディレクトリである必要があります。注:このオプションはファイルの存在に関連し、オプションの後に続きます-m-eたとえば、

realpath --relative-to=/usr /tmp /usr/bin
⇒ ../tmp
⇒ bin
realpath --relative-base=/usr /tmp /usr/bin
⇒ /tmp
⇒ bin
  1. 「このオプションは一緒に使用すると機能します」は、指定しないと機能しません--relative-to--relative-base--relative-to

    --relative-toそれでは、「指定しないと、基本の子孫が基本に基づいて印刷されます」と言うのはなぜですか?--relative-baseこれは、指定せずに機能するという意味ですか--relative-to

  2. --relative-to指定しない--relative-to場合、デフォルトの子はデフォルトに基づいて印刷されます。指定されている場合、このオプションを適用するには、ディレクトリがデフォルトの子である必要があります。」

    これらの指定された場合と指定されていない場合の違いは何ですか --relative-to

    参照の両方の場合は同じですか?つまり、ベースの子孫だけがベースに基づいて印刷され、残りは絶対パス名で印刷されますか?

ありがとうございます。

ベストアンサー1

開発者はこれが曖昧であることを知り、4年前にこれを変更しました。

基準点が訪問した各パスの相対位置プレフィックスであるかどうかを再計算する必要はありません。

ほとんどの場合、誰かが他のすべてのパスを絶対に維持しながら相対パスをフィルタリングしたい場合は、同じ基準でフィルタリングしたいと思います。--relative-to目次。これを指定する方が簡単です。

しかし、文書は--relative-baseそしてそう--relative-toだ。明確にするために書き直されていません。指定しない場合、--relative-toデフォルトは指定された値です--relative-base

おすすめ記事