POSIXは、すべてのシェルユーティリティがファイルを必要とするシンボリックリンクを解決することを保証しますか?

POSIXは、すべてのシェルユーティリティがファイルを必要とするシンボリックリンクを解決することを保証しますか?

1つ以上のファイルを引数として使用するPOSIXシェルユーティリティの場合、POSIXはシンボリックリンクが渡され、ユーティリティがそれを解決できることを保証しますか?どこかに文書化されていますか?

ベストアンサー1

実際にPOSIXいいえ引数で指定されたシンボリックリンクを解決するために指定するすべてのユーティリティが必要で、ファイル名またはパスが必要です。しかし、詳しく文書化してください。シンボリックリンクを処理する方法(「シンボリックリンク」エントリを探してください)。

通常、パスコンポーネントが/

それから

デフォルトのシンボリックリンクポリシーは、4つのドメインのシステムに設定されています。ほとんどすべての場合にこのデフォルト動作をオーバーライドするユーティリティオプションがあります。 4つのドメインは次のとおりです。

  1. パス名引数を使用するシステムコールに割り当てられたシンボリックリンク

  2. ファイル層ナビゲーションを実行しないユーティリティのコマンドラインパス名引数で指定されたシンボリックリンク

  3. ファイル階層ナビゲーションを実行するユーティリティで指定された非ディレクトリタイプのファイルを参照するシンボリックリンク

  4. ファイル層ナビゲーションを実行するユーティリティに割り当てられたディレクトリタイプファイルを参照するシンボリックリンク

システムコールの振る舞いは、歴史的な理由でさまざまです。

便利いいえファイルシステムのナビゲーションは、いくつかの例外を除いてシンボリックリンクに従います。これにはほとんどのユーティリティが含まれます。

一般的な規則は、このカテゴリのユーティリティがパラメータという名前のシンボリックリンクに従うことです。

ファイルシステムを巡回するユーティリティは、ディレクトリ以外のファイルへのシンボリックリンクを処理し、意味がある場合は従わず、そうでなければ追跡します。

ファイルシステムを通過するユーティリティの場合、POSIXはディレクトリシンボリックリンクに関連する特定の動作を必要としませんが、次のことをお勧めします。いいえ詳細な推論を伴うシンボリックリンクに従ってください。

上記には例外があり、システムがシンボリックリンクに特定の属性を割り当てるかどうかによって異なります。例えばシンボリックリンクがリンクされたファイルから独立した権限を持っているかどうか)

おすすめ記事