test -e file
十分な柔軟性がない場合、私は次の Bash イディオムを使用してファイルの存在を確認する傾向があります。
if [ -n "$(find ${FIND_ARGS} -print -quit)" ] ; then
echo "pass"
else
echo "fail"
fi
しかし、私はブール値にしか興味がないので、${FIND_ARGS}
代わりにできることはありますか:
if find ${FIND_ARGS} ; ...
test -e file
十分な柔軟性がない場合、私は次の Bash イディオムを使用してファイルの存在を確認する傾向があります。
if [ -n "$(find ${FIND_ARGS} -print -quit)" ] ; then
echo "pass"
else
echo "fail"
fi
しかし、私はブール値にしか興味がないので、${FIND_ARGS}
代わりにできることはありますか:
if find ${FIND_ARGS} ; ...
いいえと思います。man find
...
find は、すべてのファイルが正常に処理された場合はステータス 0 で終了し、エラーが発生した場合は 0 より大きいステータスで終了します。これは意図的に非常に大まかな説明になっていますが、戻り値が 0 以外の場合、find の結果の正確さに依存するべきではありません。
出力のテストは、おそらく検索で問題ありません。それは「Bashイディオム」ではありません。それだけでは十分ではなく、Bash が利用できる場合は、extglobsとglobstarを使用してファイル マッチング テストを行うことができます[[
。Find は、複雑な再帰的なファイル マッチング、ファイルの実際の検索、および Bash 機能では簡単に実行できないその他の目的にのみ使用する必要があります。