#!/bin/bash -
# 获取文件列表,并删除第一行的total ***
filelist=`ls -lt --full-time $* | sed '1d'`
time=()
file=()
#修改shell的字段分割符
IFS=$'\n'
for f in ${filelist}
do
#取出每行的文件名字段,放入数组file中
filename=`echo $f | awk '{printf("%s", $9)}'`
file+=($filename)
#取出每行的时间字段,转换成EPOCH秒数值(方便比较),放入数组time中
date_modified=`echo $f | awk '{printf("%s %s", $6, $7)}'`
timestr=`date --date="$date_modified" +%s`
time+=($timestr)
done
#取出数组中元素个数,即文件数
#数组file和数组time中每个元素一一对应,即一个文件对应其修改时间值
cnt=${#file[*]}
for((i=0i<$cnt-1i++))
do
#如果前者的修改时间大于后者,则输出提示
if [ ${time[$i]} -gt ${time[$i+1]} ]then
echo "Modification time: ${file[$i]} >${file[$i+1]}"
fi
done
使用ls -l命令列出文件信息
使用awk命令抓取修改日期信息
使用修改日期比对你所指定的日期,如果一致则统计数加一
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)