Shell file modification time comparison

#rm -f cpptime.time
#
#获取路径
currentPath=`pwd`'/test.cpp'
#echo $currentPath
#获取文件最后修改的时间戳
#time=`stat -c %Y $currentPath`
#格式化
#formart_date=`date '+%Y-%m-%d %H:%M:%S' -d @$time`
#echo $formart_date

#把文件路径和时间写入文件
#echo "$currentPath"'|'"$time" > cpptime.time


#验证文件
vertifyFile="cpptime.time"
#不用编译的文件
equaltimefile=''
#需要编译的文件
notequaltimefile=''

#参数是要判断的一个文件路径
function JudgeChangeFile()
{
	
 
	#判断验证文件是否存在且不为空 , -s表示不为空
	if [ -e $vertifyFile  ] && [ -s $vertifyFile ] #是否存在cpptine.time文件
	then 
		#echo "vertifyFile is  exist!"
		``	  # 放置一个空命令
	else
		#echo "vertifyFile is not exist!"
		notequaltimefile=$notequaltimefile" "$@
		return
	fi
  
	while read line
	do
	
	#echo $line
	#提取第一部分和第二部分, f1是第一部分,f2是第2部分
	#echo $line|cut -d "|" -f1		#文件路径
	#echo $line|cut -d "|" -f2		#文件的时间戳
		#$@ 函数的所有参数			$currentPath
		if [ $@ = `echo $line|cut -d "|" -f1` ] #cpp文件名字是否验证文件内的名字
		then 
		#在验证文件里面存在文件名字
			#echo "vertify file  exist cpp filename "
			#要判断的当前文件时间
			time=`stat -c %Y $@`
			if [ $time = `echo $line|cut -d "|" -f2` ] #文件是否修改了
			then
			#没有修改
				#echo "equal time "
				equaltimefile=$equaltimefile" "$@
				 
			else
			#文件修改了
				echo "not equal time"
				notequaltimefile=$notequaltimefile" "$@
				
			fi
		 return
		fi
		
	done < $vertifyFile

		#在验证文件里面不存在文件名 ,当作修改文件处理
		echo "vertify file not exit cpp filename "$@" "`echo $line|cut -d "|" -f1`
		notequaltimefile=$notequaltimefile" "$@

}
 echo '-----------------------------'
 #函数调用
JudgeChangeFile $currentPath
JudgeChangeFile `pwd`'/test2.cpp'

echo "没有改动的文件:"$equaltimefile
echo
echo "修改的文件:"$notequaltimefile


	#删除修改时间验证文件,重新创建
	if [ -e $vertifyFile  ] #是否存在cpptine.time文件
	then 
		#echo "vertifyFile is exist! "
		rm -f $vertifyFile
	else
		#echo "vertifyFile is not exst,Create!"
		touch cpptime.time
	fi

#echo "------WriteTimeFile-----------"
#Write to cpptime.time
function WriteTimeFile()
{
	 for filepathname in $@ 
	    do
		#echo $filepathname
		time=`stat -c %Y $filepathname`
		#把文件名称和文件的修改时间写到验证文件
		echo "$filepathname"'|'"$time" >> cpptime.time
		 
	    done
}
#把cpp文件和文件修改时间都写到验证文件
WriteTimeFile $equaltimefile
WriteTimeFile $notequaltimefile

 

Guess you like

Origin blog.csdn.net/m0_37981386/article/details/112418966