私はいくつかのシェルが、少なくともファイル名がシンボリックリンクを命名する場合を検出するためにファイルテスト演算子をサポートしていることを知っています。
POSIXはありますか?便利1同じ機能を提供しますか?
1ここでは正しい用語を使用していない可能性があります。 「ユーティリティ」とは組み込みシェルではなく、/bin
etc.以下のスタンドアロン実行可能ファイルを意味します。/usr/bin
ベストアンサー1
あなたが探しているtest
:
-h パス名
パス名が存在し、シンボリックリンクであるファイルで解決された場合は真です。パス名が解決できない場合、またはパス名が存在するがシンボリックリンクではないファイルで解決された場合は、False を返します。パス名の最後のコンポーネントがシンボリックリンクの場合、シンボリックリンクに従わないでください。
ほとんどのシェルには組み込みプログラムがありますが、test
途中でシェルを呼び出さずに他のプログラムから呼び出すことができるスタンドアロンプログラムとしても存在します。これは、シェル自体で機能する機能(break
、、、 ...などの特殊な組み込み機能export
)set
を除いて、シェルに存在できるほとんどの組み込み機能に当てはまります。
[ -h pathname ]
Equivalenttest -h pathname
は[
まったく同じように機能しますtest
が、[
最後に追加のパラメータが必要です。のようにスタンドアロンプログラムとして存在します。]
[
test
たとえば、
$ ln -s foo bar
$ /usr/bin/test -h bar && echo y
y