18
A
回答
24
这是Banthar的解决方案有所不同,但它会随着find
版本不支持-newermt
工作,它展示了如何使用xargs
命令,该命令是一个非常有用的工具。
您可以使用find
命令来查找“特定时代”的文件。这将找到修改的所有文件之间5和10天前:
find /directory -type f -mtime -10 -mtime +5
为了然后搜索这些文件的字符串:
find /directory -type f -mtime -10 -mtime +5 -print0 |
xargs -0 grep -l expression
您还可以使用-exec
开关,但我觉得xargs
更具可读性(并且它通常也会表现得更好,但可能不会在这种情况下)。
(注意:-0
标志是有没有让这个命令对带空格的文件进行操作,如this is my filename
)
更新注释中的问题
当你find
提供多种表情,他们在一起。例如,如果你问:
find . -name foo -size +10k
... find
将只返回那些文件都(一)评选foo
和(B)大于10千字节大。同样,如果您指定:
find . -mtime -10 -mtime +5
... find
将只返回文件,这些文件(一)更新于10天前和(B)超过5天以上。
例如,我的系统上它目前是:
$ date
Fri Aug 19 12:55:21 EDT 2016
我有以下文件:
$ ls -l
total 0
-rw-rw-r--. 1 lars lars 0 Aug 15 00:00 file1
-rw-rw-r--. 1 lars lars 0 Aug 10 00:00 file2
-rw-rw-r--. 1 lars lars 0 Aug 5 00:00 file3
如果我要“修改超过5天前的文件(-mtime +5
)我得到:
$ find . -mtime +5
./file3
./file2
但如果我要求“文件修改超过5天前但少于10天ag O”(-mtime +5 -mtime -10
),我得到:
$ find . -mtime +5 -mtime -10
./file2
14
-1
find
似乎并不有选择,您可以指定时间戳比较具体日期(至少在我的笔记本电脑上的版本不 - 可能还有其他版本和/或其他类似的工具),因此您必须使用天数。因此,截至2012年6月5日,您想查找比9天更早但超过6天的文件:
find . -type f -ctime -9 -ctime +6 -print0 | xargs -0 grep XYZ
相关问题
- 1. 在模型范围内创建日期
- 2. 问题的日期范围内创建
- 3. 如何在日期范围内获取所有“特定日期”
- 4. 在休眠日期范围内获取所有日期值
- 5. 显示的日期范围内的所有日期
- 6. 输出日期范围内的所有日期
- 7. 不在日期范围内
- 8. SUMIFS在日期范围内
- 9. 在日期范围内有多少Januarys
- 10. 在日期范围内更改事件
- 11. 日期范围内的打印日期
- 12. 日期范围内的VLOOKUP日期
- 13. 在另一个日期范围内总结日期范围
- 14. php函数获取日期范围内的所有星期一
- 15. 同时在日期范围内包含所选日期
- 16. 获取在2周范围内的所有日期
- 17. 在Oracle 12c中查找日期范围内的所有记录
- 18. 检查的日期范围的日期范围内
- 19. 给定一个范围,在Scala中获取该范围内的所有日期
- 20. 在多个日期范围内的开始日期和结束日期范围
- 21. 创建日期范围
- 22. 创建mysql日期范围
- 23. 创建日期范围表
- 24. Elasticsearch日期范围内没有工作
- 25. PHP:在日期范围内遍历所有月份?
- 26. SQL选择日期范围内的每个日期的所有内容,每个日期有多个值
- 27. T-SQL任务 - 在两个日期范围内查找指定星期几的所有日期范围
- 28. SQL查询检查日期范围内存在的所有日期
- 29. 使用JACOB在日期范围内阅读日历文件夹
- 30. 用日期范围内的星期几
服务器故障中的相关问题:http://serverfault.com/q/122824/ 36963 – brandizzi