"ls"コマンドの-L(シンボリックリンク逆参照)スイッチはどのくらい汎用性がありますか?

私は何よりも、次のことを要求するいくつかのソフトウェアがあります。

  • ファイルの rwxrwxrwx 権限を評価します。
  • 見つかったすべてのUnixおよびLinux環境で作業できます。

現在はコマンドを実行してこれを行いますls -l。ファイルがシンボリックリンクの場合は、ターゲットファイルに対する権限を取得する必要があります。この-Lスイッチはこれに適しています。

問題は、このスイッチがUnixバージョンで動作しない危険性がありますか?です。それではどれですか? (彼らが十分にまれで十分に古い場合は、この問題を無視できます。)

ベストアンサー1

解析されないlsあなたが助けることができれば。実行している操作に応じて、このtestユーティリティはより良い選択かもしれません。

test -r filename現在のユーザーの権限でファイルを読み取ることができる場合、成功が返され、自動的にシンボリックリンクに従います。同様に-w-xファイルは書き込み可能か実行可能かを示します。コマンドtestPOSIXで指定したがって、すべての最新のUNIXで動作する必要があります。

ファイルの特定の権限を本当に知る必要がある場合は、ls一度に1つのファイルのみを使用する限り、この方法はおそらく最も移植性の高い方法です。この場合、フラグもあります-L-lPOSIXで指定だから、かなり安全です。 (願いより」解析されないls「出力フィールドの移植性のさらなる説明ですls -l。)

別のオプションは、以下を活用する短いCプログラムを書くことです。stat(2)システムコール、ここ〜するすべてのUNIXで動作します。これがCでコンパイルされた小さなソフトウェアであれば、おそらくこれが最善の選択です。

おすすめ記事