全部博文(298)
分类: Python/Ruby
2012-04-21 21:21:43
统计文件/文件夹大小信息
该脚本用于统计文件/文件夹大小信息
-d 仅显示文件夹信息
-f 仅显示文件信息
-a 统计包括隐藏文件
-A 统计全部信息
#!/bin/bash
usage() { cat <<-EOF --------------------------------------------------------- 该脚本用于统计文件/文件夹大小信息 -d 仅显示文件夹信息 -f 仅显示文件信息 -a 统计包括隐藏文件 -A 统计全部信息 --------------------------------------------------------- EOF }
caldir(){
total1=0 total2=0 exern= [ $ALL ] && exern="-a" #find $1 -maxdepth 1 当前文件夹下 for file in `ls $exern $1` do if [ "$file" = "." ];then #去掉 . path="$1/$file" size=`stat -c %s $path` if [ -f $path ];then ((total1 =total1 + size)) [ $FILE ] && echo "$path File Size:$size" size=0 elif [ -d $path ];then ((total2 = total2 + size)) [ $DIR ] && echo "$path Dir Size:$size" size=0 fi done [ $FILE ] && echo "$1 Total File Size: $total1 bytes" [ $DIR ] && echo "$1 Total Dir Size: $total2 bytes" } FILE=1 DIR= ALL= while getopts dfaA opt do case $opt in d) DIR=1 FILE= ;; f) DIR= FILE=1 ;; a) ALL=1 ;; A) DIR=1 FILE=1 ALL=1 ;; ?) usage ;; esac done shift $((OPTIND - 1)) for one in "$@" do if [ -f $one ];then stat $one elif [ -d $one ];then caldir $one else echo "$one is not file and dir." fi done |