如何在 Shell Scripting 中检查目录是不是为空? [复制]
Posted
技术标签:
【中文标题】如何在 Shell Scripting 中检查目录是不是为空? [复制]【英文标题】:How to check whether a directory is empty or not in Shell Scripting? [duplicate]如何在 Shell Scripting 中检查目录是否为空? [复制] 【发布时间】:2016-07-14 16:51:46 【问题描述】:我有一个目录。它是空的。如果我执行 ls -lrt ,它显示总 0
我如何指定一个 If 条件来执行某事,仅当目录为空时。
我的意思是问如何捕获那个 0 值。
【问题讨论】:
见:Bash checking if folder has contents 和 Checking from shell script if a directory contains files @Cyrus 我也检查了这些,但我似乎无法解决。 【参考方案1】:删除-A
选项:
$ mkdir /tmp/aaa
$ ls /tmp/aaa
$ a=\`ls /tmp/aaa`
$ [[ -z $a ]]
$ echo $?
0
【讨论】:
如果目录中有隐藏的(例如.file
)?它仍然会报告为空,是吗?这不是-A
选项的原因吗?
正确。 ls -A 将列出隐藏文件,如 .file,但不列出 .和..
因此,您的答案会忽略目录中的隐藏文件,证明它是错误的......【参考方案2】:
来自here。这应该可以帮助您在 if else 循环中运行您的语句。我将 DIR 保存在变量中
#!/bin/bash
FILE=""
DIR="/empty_dir"
# init
# look for empty dir
if [ "$(ls -A $DIR)" ]; then
echo "Take action $DIR is not Empty"
else
echo "$DIR is Empty"
fi
# rest of the logic
【讨论】:
如果我要检查目录是否为空? 见:Negate if condition in bash script以上是关于如何在 Shell Scripting 中检查目录是不是为空? [复制]的主要内容,如果未能解决你的问题,请参考以下文章