检测某工程下的源文件是否发生过修改并且找出具体的源文件

本文介绍了一种利用bash脚本自动化检测C源文件修改情况的方法。通过对比文件的数字签名,可以快速发现哪些文件被修改过,适用于软件项目的版本控制和变更管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash
# 注意事项,执行该脚本前应首先声称文件的数字签名日志文件,即md5.log
# 可以使用命令:ls *.c | xargs md5sum > md5.log
if [ ! -f diff.log ]; then
	# 生成文件的数字签名
	$(ls *.c | xargs md5sum > temp.log)
	# 对比文件的数字签名是否发生改变
	$(diff md5.log temp.log > diff.log)
	# 备份最新的文件数字签名
	$(mv temp.log md5.log)
fi
# 获取当前目录下的所有的源文件
files=$(ls *.c)
# 遍历当前目录下的所有源文件
for var in $files
do
	# 获取文件的文件名
	name=${var%.c}
	cat diff.log | grep $name > /dev/null 2>&1
	if [ $? == 0 ]; then
		echo '文件名为:'$name'的源文件被修改过。'
	fi
done	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值