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的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 紫枫术河 imx6 uboot的mtd分区总结(rootfs为ubi文件系统) imx6 ubo
  2. 虚拟文件系统
  3. gdb core调试
  4. ramdisk配置、解压、创建rootfs、启动简单分析
  5. 超级详细|Linux系统下从0到1的玩法大全
  6. Linux命令cURL如何访问FTP服务器
  7. Linux crontab命令详解
  8. 使用Linux命令cURL实现文件定时上传到ftp服务器的程序
  9. Linux wget命令详解

随机推荐

  1. Android应用程序管理
  2. Android里面各种控件的状态选择器
  3. Android XML 绘图
  4. Android 中两种方法设置android:gravity
  5. 新浪微博客户端源码 android
  6. android的profiler工具
  7. android RelativeLayout 属性学习
  8. Android帧率测试
  9. Android Interface Definition Language
  10. Android之ListView中的分割线