如何使用stat linux命令检查文件是否已更改

时间:2014-07-08 13:44:03

标签: regex linux shell grep openwrt

我想使用stat linux命令检查文件是否已更改。

  

linux @ server:〜/ $ stat test.txt文件:`test.txt'尺寸:23
  块:8个IO块:4096个常规文件设备:802h / 2050d   Inode:4887765链接:1

     

访问:(0644 / -rw-r - r--)Uid:(1000 / anis)Gid:(1000 /
  茴香)

     

访问权限:2014-07-07 16:34:42.476315578 +0200

     

修改时间:2014-07-08 12:54:15.756553868 +0200

     

更改:2014-07-08 12:54:15.756553868 +0200

我们可以看到变化的时间。 目的是使用此更改时间来检查文件是否已修改

  

linux @ server:〜/ anis $ stat test.txt | grep更改
  更改时间:2014-07-08 12:54:15.756553868 +0200

     

linux @ server:〜/ anis $ stat test.txt | grep Change

     

更改时间:2014-07-08 15:14:03.107977776 +0200

那么如何使脚本在无限循环中运行以检查时间是否已更改?

2 个答案:

答案 0 :(得分:2)

不要使用stat。要简单地阻止,直到修改文件,请使用inotifywait

inotifywait -e modify test.txt

您可能希望等待限制较少的一组更改:

inotifywait test.txt

将阻止,直到文件上发生任何事件。另外,请考虑用户的理智:

inotifywait -qq test.txt

答案 1 :(得分:0)

如果您正在使用OpenWrt Buildroot,那么您可以在配置期间选择并安装inotify-tools(make menuconfig,或者您正在使用的配置)。

之后你可以像William Pursell所说的那样使用inotifywait。

2011年,用this patch添加了 inotify-tools 包。