Это то, что я обычно использую. Но мне нужно рекурсивно найти расширение с помощью тогда и другого. Проблема с этим в том, что он не рекурсивный.

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

1 ответ1

2

Используйте find вместо ls. Если у вас есть GNU find, вы можете использовать -quit для выхода после первого совпадения. Затем просто проверьте, вернул ли он какой-либо результат.

Сценарий будет выглядеть примерно так

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

Используйте -iname вместо -name для поиска без учета регистра.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .