パス名が存在するかどうかを確認するには?

パス名が存在するかどうかを確認するには?

パス名が存在するかどうかをテストする方法は?

以前は、以下を使用しました。

realpath -e /some/path

シンボリックリンクが壊れない限り、/some/pathシンボリックリンクが存在しないことを報告します。

[ -e /some/path ]

同様の結果が出ますrealpath

答え1

/some/path完全に確認可能なコンテンツまたは破損したシンボリックリンクとして存在することを確認するには、次の手順を実行します。

if [ -e /some/path ] || [ -h /some/path ]; then
    echo '/some/path exists, possibly as a broken symbolic link'
fi

-hこのテストはシンボリックリンクが壊れているかどうかに関係なく正確です。-Lテストと同じテストもあります-h(歴史的な理由)。

-e指定されたパス名と解釈されたすべてのシンボリックリンクが見つからないと、テストは失敗します。そのため、パス-h名のファイル名部分が破損したシンボリックリンクであると予想される場合は、別のテストでそれを使用する必要があります。

関連情報