因为一个小需求,做了个小功能。
遍历指定目录(包含文件)并且展示目录下所有文件的md5值。
如果文件名称包含空格可以跳过,源文件名称包含?可能会出错哦~
以下代码简单易懂,仅供参考,贴在这里:
#!/bin/sh
if [ $# -ne 1 ] ; then
echo Usage: $0 dir or filename
exit
fi
topdir=$1
if [[ $topdir != /* ]]; then
topdir=`pwd`"/"${topdir#.}
fi
md5sum_record()
{
cd $1
files=`ls | tr " " "\?"`
for current_file in $files; do
pathfile=${current_file//\?/\ }
if [ -d "$1/$pathfile" ]; then
md5sum_record "$1/$pathfile"
else
md5sum "$1/$pathfile"
fi
done
}
#---------------
# Main program
#---------------
if [ -f $topdir ];then
md5sum $topdir
else
cd $topdir
md5sum_record $topdir
fi
看到有朋友一句话解决上面所有:
find ./ -type f -print0 | xargs -0 md5sum