4

Пока что у меня есть это. Есть ли более эффективный способ?

if ls -1 $HOME/path/to/folder/* >/dev/null 2>&1
then
        echo Directory is not empty.
else
        echo Directory is empty.
fi

1 ответ1

5

Это стандартное упражнение во всех книгах / блогах / руководствах по оболочкам: в bash

 [ "$(ls -A /path/to/directory)" ] && echo "Not Empty" || echo "Empty"

Bash не имеет стандартного теста для пустой директории, такой как [-f file], поэтому мы должны написать его. Тест && затем 1 || или 2 - это стандартный способ сокращения условного выражения в форме

if condition is satistfied
    then do 1
else
    do 2
fi

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