【问题标题】:Is there any way to find out changed file after some date in whole project code?有没有办法在整个项目代码中的某个日期之后找出更改的文件?
【发布时间】:2012-02-17 15:35:52
【问题描述】:

看到我正在处理一个大项目源代码现在我想知道哪些文件在某个日期之后被修改。

是否有任何命令或任何方法可以得到它..

我试过了

# ls -R -l 

但这里它显示了所有带有最后修改数据的文件,但我想用一些数据过滤这个输出......

那么有没有办法在 linux 中做到这一点?有没有可用的工具?

【问题讨论】:

  • 什么是单片机工具?几乎所有版本控制工具都带有良好的查询机制
  • find 有不同的选项来根据访问日期提供列表

标签: linux shell ls


【解决方案1】:
#set timestamp for file    
touch --date "2011-12-31" /tmp/foo
# Find files newer than 2011/Dec/31, in /some/files
find /some/files -newer /tmp/foo

【讨论】:

  • 特定时间后:touch -d '2011-12-31 10:22' /tmp/foo
  • 什么是/tmp/foo?我该怎么做:在这个目录中找到 mmtime > this-date 的文件并将其保存为变量 lst?谢谢
【解决方案2】:

使用带有 mtime 参数的 find 命令:Some examples are herehere

例如,列出过去 7 天内更改的文件...

find / -type f -mtime -7 

对于 fine 粒度搜索,您可以尝试 -mmin 参数。请参阅另一个 SE 站点中讨论的示例:Find All files older than x minutes

【讨论】:

  • mtime 的问题是它太粗糙了。如果你有 6 小时前和 8 小时前修改过的文件,你不能用 find 来区分它们。您需要使用peko's workaround
  • 这个命令给出的是 7*24 小时前修改过的文件,而不是过去 7 天里修改过的文件。
  • 是否可以跳过某些带有特定关键字的子文件夹保持“缓存”和“日志”?例如。 find / -type f -mtime -7 -skip "cache,log" ? 谢谢。
  • -mtime -7 的示例确实找到了过去 7 天内更改的所有对象。不仅仅是 7*24 之前。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-26
  • 2020-12-09
  • 1970-01-01
  • 2012-06-27
  • 1970-01-01
相关资源
最近更新 更多