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

Dav*_*ter 4 bash

到目前为止,我已经有了这个。有没有更有效的方法?

if ls -1 $HOME/path/to/folder/* >/dev/null 2>&1
then
        echo Directory is not empty.
else
        echo Directory is empty.
fi
Run Code Online (Sandbox Code Playgroud)

Mar*_*iae 7

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

 [ "$(ls -A /path/to/directory)" ] && echo "Not Empty" || echo "Empty"
Run Code Online (Sandbox Code Playgroud)

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

if condition is satistfied
    then do 1
else
    do 2
fi
Run Code Online (Sandbox Code Playgroud)