パス名が存在するかどうかをテストする方法は?
以前は、以下を使用しました。
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
名のファイル名部分が破損したシンボリックリンクであると予想される場合は、別のテストでそれを使用する必要があります。