shell for 循环、查看文件大小、计算文件md5

今天一同学需要这样一个工具:

      列出指定目录下文件的 md5、大小(单位:M)、文件名

百度了一番,实现结果如下:    

FILES=$1
cd $FILES

for i in  $(ls)
do
     md5sum $i|awk '{printf "\t%s\t",$1}';  // 为了使输出格式符合要求,这里
     du -sh $i;
done

 

调用:

./test.sh test  // test 即未指定目录,上述脚本保存在 test.sh文件中

 

输出的效果如下:

 3828735cd9d108610eabe9153c0c39ee 11M 3.mtz
 d52d5012d132b376bf1b214536a2498f 8.4M 3.mtz
 3ce74fa62773e7768dadc5638c4fe056 140K default_3.jpg
 ee4c1aa5f3470a8d27a34d1c4a7b748c 2.1M default_2.jpg
 ee4c1aa5f3470a8d27a34d1c4a7b748c 2.1M default_1.png

 

用到的知识点总结:

1、shell 的for 循环 (包括 循环取得指定目录下的文件名)

2、md5sum filename // 计算指定文件的md5

3、du -sh filename // 计算指定文件的大小(单位:M)

 

上述脚本的确定:对指定目录下存在的文件夹未作判断,因为是临时使用,所以这里只是简单实现了功能

 

你可能感兴趣的:(c,shell,百度,脚本,工具)