如题所述
第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}'
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/*本回答被提问者和网友采纳
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追问
do
[ ! -s $folder ] && echo "$folder is empty!"
done追问
[ ! -s $folder ] 中-s判断文件是否存在并且大于0,不是针对文件夹的
追答额 改一下,[ "$(ls -A $folder)" ] && echo "$folder is Not Empty" || echo "$folder is Empty"