shell脚本如何判断目录下的多个文件夹是否为空

如题所述

第1个回答  2013-01-29
directoy=./
find ${directoy} -type d | xargs du -sh | grep ^0 | awk '{print $2}'

先在指定目录下查找 目录文件, 然后用 du -sh 计算目录大小, 找出大小为0的目录,然后打印出来即可

若是不希望循环查找下去,可以只查找本级目录:
ls -l | grep ^d | awk '{print $NF}' | xargs du -sh | grep ^0 | awk '{print $2}'

还有个比较完善的解答:
directoy=./

ls -l ${directoy} | grep ^d | awk '{printf("%s/%s\n",dir,$NF)}' dir=${directoy} | xargs du -sh | grep ^0 | awk '{print $2}'
第2个回答  2013-01-28
FILEPATH=$1 #文件目录
FILES=`ls $FILEPATH`
cd $FILEPATH

for file in $FILES
do
[ ! -s $file ]&& echo "$file is empty"
done

在测试编写过程序中,maxnu朋友的for folder in /path/to/directory/* 的写法有问题 folder不会展开
$folder 值为/path/to/directory/*本回答被提问者和网友采纳
第3个回答  2013-01-28
for folder in /path/to/directory/*
do
[ ! -s $folder ] && echo "$folder is empty!"
done追问

[ ! -s $folder ] 中-s判断文件是否存在并且大于0,不是针对文件夹的

追答

额 改一下,[ "$(ls -A $folder)" ] && echo "$folder is Not Empty" || echo "$folder is Empty"

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网