linux批量判断文件是否修改

linux批量判断文件是否修改,第1张

用数字签证。

Linux批量判断文件是否修改用数字签证,通过对比两次签字来确认文件是否有改变,如果签字与原来的签字不一样,说明文件被修改过。如果签字与坦基原来的签春橡字一样,说明文件没有被修改过。

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX *** 作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个扒信旁基于POSIX的多用户、多任务、支持多线程和多CPU的 *** 作系统。

可以用 文件状态 ,例如 文件建立时间,文件最歼昌后一次修改时间,文件最后一次被访问的时间,做判断。

获取文件状态用:

#include <io.h>

int get_namein_time(char *namein, char * ftime){

struct _finddata_t fileinfo

int res,DEBUG=0,flag=0

if ( (res = _findfirst(namein, &fileinfo)) == -1){

if (DEBUG==1) printf("get file info error !\n")

return 0

}

if ( strcmp(namein,fileinfo.name)==0 ) {

flag=1goto Lab

}

do {

if ( strcmp(namein,fileinfo.name)==0 ) {flag=1goto Lab}

} while ( _findnext(res, &fileinfo) ==0)

Lab: strcpy(ftime,ctime(&fileinfo.time_write))

_findclose(res)

return flag

}

最可靠的是用文件的哈希氏团扒码判断,就是区块链中用的方法。

例如视窗系统,调用系统 Certutil 计算出 文件的 哈希码,与文件原来的码或指对比。若变了,就是被修改了。

Certutil -hashfile abc.txt MD5 这个检查 文件 abc.txt

Certutil -hashfile XYZ.txt SHA512 这个检查 文件 XYZ.txt

SVN根据当前每个文件的保存时间来判断文件是否被修改过,对比的依据是在客户端每个文件夹旦返下面的.svn隐藏文件夹,这个隐藏文件夹里保存了SVN的一些控制信息。

每次你执薯迟耐行任何 *** 作修改了某个文件,只要文件被保存,那么这个文件在 *** 作系统中的“修改时间”就会有变化,SVN监测到数春这个时间与,svn文件夹中存储的时间不一致,就会判断出这个文件被修改过。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12197453.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存