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"
测试
准备测试数据
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
执行
关于以上数组方式实现并不完善,例如未判目录是否存在等等。
希望大家给予宝贵的建议留言给予完善。
也可以补充或者共享一些其他的实现方法,越多越好。
感谢支持。
©著作权归作者所有:来自51CTO博客作者wx607823dfcf6a9的原创作品,如需转载,请注明出处,否则将追究法律责任更多相关文章
- 紫枫术河 imx6 uboot的mtd分区总结(rootfs为ubi文件系统) imx6 ubo
- 虚拟文件系统
- gdb core调试
- ramdisk配置、解压、创建rootfs、启动简单分析
- 超级详细|Linux系统下从0到1的玩法大全
- Linux命令cURL如何访问FTP服务器
- Linux crontab命令详解
- 使用Linux命令cURL实现文件定时上传到ftp服务器的程序
- Linux wget命令详解