shell脚本判断文件夹下是否有文件

 我来答
bdjfxue26
2017-08-22 · TA获得超过105个赞
知道答主
回答量:47
采纳率:100%
帮助的人:20.9万
展开全部
search_dir=/tmp/test
include_subdir=1

if [ $include_subdir -eq 1 ]; then
    n=$(find $search_dir -type f -exec sh -c 'printf "%s\n" "$1"; kill "$PPID"' sh {} \; | grep -v "Terminated" | wc -l)
else
    n=$(find $search_dir -maxdepth 1 -type f -exec sh -c 'printf "%s\n" "$1"; kill "$PPID"' sh {} \; | grep -v "Terminated" | wc -l)
fi

结果 n 为 0 表示指定目录下面没有文件,否则有文件。如果不需要检查指定目录下的子目录,把 include_subdir 置为 0 即可。find 命令中较复杂的那部分是为了实现找到第一个文件时就停止查找,避免检查有大量文件的目录时影响性能。

松映寒Vg
2017-08-21 · TA获得超过651个赞
知道小有建树答主
回答量:350
采纳率:66%
帮助的人:170万
展开全部

我们可以通过判断文件夹中的文件的列表是否为空来判断:

if [[ -n $(ls) ]]; then
    # Do something here
else
    # Do something else here
fi
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风起雪落2009
2016-06-26 · TA获得超过1597个赞
知道大有可为答主
回答量:1743
采纳率:74%
帮助的人:378万
展开全部
#!/bin/sh
DIRECTORY=$1
if [ "`ls -A $DIRECTORY`" = "" ]; then
echo "$DIRECTORY is indeed empty"
else
echo "$DIRECTORY is not empty"
fi
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柳鲲鹏
2021-09-10 · TA获得超过513个赞
知道答主
回答量:190
采纳率:55%
帮助的人:7万
展开全部
  各位回复得都很好。吾补充如下:
dir=${HOME}/test
if [ -d ${dir} -a "`ls -A ${dir}`" != "" ]; then
echo "${dir} has files!"
fi
即:先判断有没有这个目录,再判断目录中有没有文件(或子目录)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wacs5
2017-09-01 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2751万
展开全部
#!/bin/sh
myFile="~/log/mylog.log"
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi

注意if里面的中括号的任意一个空格,具体可以参考shell 编程方面的书籍
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式