Unix では、再帰的に ext を検索し、その後、else を実行する

Unix では、再帰的に ext を検索し、その後、else を実行する

これは私が通常使用するものです。ただし、then および else を使用して再帰的に拡張機能を見つける必要があります。この場合の問題は、再帰的ではないことです。

if ls $HOME/Downloads/*.ext >/dev/null 2>&1
then
    :
else
    :
fi

答え1

ls の代わりにを使用しますfind。GNU find をお持ちの場合は、-quit最初の一致後に を使用して終了できます。その後、結果が返されたかどうかを確認します。

スクリプトは次のようになります

if [ -n "$(find $HOME/Downloads -name '*.ext' -print -quit | head -n 1)" ]
then
    :
else
    :
fi

大文字と小文字を区別しない検索を行うには、-name の代わりに -iname を使用します。

関連情報