今天一同学需要这样一个工具:
列出指定目录下文件的 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)
上述脚本的确定:对指定目录下存在的文件夹未作判断,因为是临时使用,所以这里只是简单实现了功能