LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1202|回复: 7

怎样判断文件是否还是原来的文件?

[复制链接]
发表于 2003-3-24 19:04:54 | 显示全部楼层 |阅读模式
我在代码的每个周期里要判断配置文件是否还是原来的文件.

我现在通过文件的首行来判断,但是感觉不保险,万一首行被用户删了怎么办?
又想通过I节点判断,但是I节点可以重用,也不保险

怎样才能判断当前的文件和上一个周期是同一个文件呢?
(即不是被用户删除又重新建立了一个)
发表于 2003-3-24 20:02:36 | 显示全部楼层
用MD5来判断。假设文件名为xxx,执行:
md5sum xxx > md5sums
就可以生成一个md5sums文件。以后过一段时间再执行一次md5,
md5sum xxx > md5sums.new
再比较这两个文件的差别:
diff md5sums md5sums.new
就能看出有没有变化了。
发表于 2003-3-26 03:21:29 | 显示全部楼层
简单一点,看文件的修改时间吧。
发表于 2003-3-26 10:54:10 | 显示全部楼层
md5会不会太慢太占资源啊,用stat查最后更新时间应该是个办法,我现在也用,不过是在shell脚本里
发表于 2003-3-27 15:07:21 | 显示全部楼层
最初由 viper 发布
简单一点,看文件的修改时间吧。

如果文件经过复制,这招恐怕就不灵了。
发表于 2003-3-30 13:26:07 | 显示全部楼层
复制?我觉得没有什么大问题,就算用旧的文件替换了新的文件,那么程序在内存中的内容应该比旧的文件新,按理说不应该想要读入旧的内容。
除非用户存心要难为咱的程序。:)
发表于 2003-4-15 01:31:28 | 显示全部楼层
最初由 kj501 发布

如果文件经过复制,这招恐怕就不灵了。

确实是这样的:我做了一个实验:请看结果:

[guo@mandrake guo]$cp main.c main
[guo@mandrake guo]$ ll
总用量 88
-rw-rw-r--    1 linan    linan         248  4月 13 15:46 credit.cpp~
-rw-rw-r--    1 linan    linan        4136  4月 13 15:41 creditformbase.ui~
drwxrwxr-x    3 linan    linan        4096  4月 15 00:09 Desktop/
-rw-r--r--    1 linan    linan       19834  4月 15 01:29 main
-rw-rw-r--    1 linan    linan       19834  4月 15 01:25 main.c
-rw-rw-r--    1 linan    linan       19831  4月 15 01:24 main.c~
-rw-rw-r--    1 linan    linan         487  4月 13 14:49 mainform.ui~
-rw-r--r--    1 linan    linan         123  4月 15 01:26 md5sum
-rw-r--r--    1 linan    linan          41  4月 15 01:24 md5sun
发表于 2003-4-15 02:46:42 | 显示全部楼层
你可以再用 -p 选项执行 cp 试试看:
$ cp -p main.c main.c.copy
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表