如果目录为空则执行此操作,如果目录不为空则执行该操作

如果目录为空则执行此操作,如果目录不为空则执行该操作

到目前为止我已经明白了。有没有更有效的方法?

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

答案1

这是所有关于 shell 的书籍/博客/手册中的标准练习:在 bash 中

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

Bash 没有针对目录是否为空的标准测试,例如 [ -f file ],因此我们必须自己编写。测试 && then 1 || or 2 是压缩条件语句的标准方法,形式如下

if condition is satistfied
    then do 1
else
    do 2
fi

相关内容