Shell编程案例:统计指定目录下指定文件大小的个数及总和

Shell编程简单案例

案例:

统计一个目录下超过指定大小的文件个数,再对筛选出的文件求总和。

要求:

输入:

输入指定目录,输入指定大小(单位M)。

输出:

输出文件个数,输出文件总和。

实现方式不唯一

以下是利用数组来实现,但是并不完善。

#!bin/bash

#统计一个目录下超过指定大小的文件个数,再对筛选出的文件求总和。

#要求:

#输入指定目录,输入指定大小(单位M)。

#输出文件个数,输出文件总和。

#实现方式不唯一

#auth:odysee

#输入的目录

dirPath=$1

#输入的文件大小

size=$2

#用一个数组接收筛选的文件

fileArray=($(find ${dirPath} ! -type d -a -size +${size}M | tr "\n" " "))

#循环遍历数组并计算文件总和

for fileName in ${fileArray[@]}

do

fileSize=$(du ${fileName} | cut -f1)

((totalSize=fileSize+totalSize))

done

#按要求输出

echo -e "超过${size}M文件个数为:${#fileArray[@]}\n文件总大小为: $((totalSize/1024))M"

Shell编程案例:统计指定目录下指定文件大小的个数及总和

 

测试

准备测试数据

cd testFile/

ls -l --block-size=M

total 39M

-rw-r--r-- 1 root root 11M Feb 16 14:59 apache-tomcat-9.0.10-windows-x64.zip

-rw-r--r-- 1 root root 6M Feb 16 14:59 hadoop-eclipse-plugin-1.1.2.jar

-rw-r--r-- 1 root root 11M Feb 16 14:59 httpd-2.4.33-o102o-x86-vc14-r2.zip

-rw-r--r-- 1 root root 2M Feb 16 14:59 JSONObject.rar

-rw-r--r-- 1 root root 2M Feb 16 15:00 mongo-java-driver-3.6.4.jar

-rw-r--r-- 1 root root 6M Feb 16 15:00 open***-connect-2.0.8.106.msi

-rw-r--r-- 1 root root 5M Feb 16 15:00 PanDownload-ok2.7.exe

Shell编程案例:统计指定目录下指定文件大小的个数及总和

 

执行

Shell编程案例:统计指定目录下指定文件大小的个数及总和

 

关于以上数组方式实现并不完善,例如未判目录是否存在等等。

希望大家给予宝贵的建议留言给予完善。

也可以补充或者共享一些其他的实现方法,越多越好。

感谢支持。

上一篇:ORAchk-数据库健康检查


下一篇:【历史上的今天】1 月 28 日:Sun 联合创始人诞生;图灵奖数据库先驱逝世;雅虎收购 GeoCities