我的目标是找到所有扩展名为 .log
的文本文件,这些文件的最后一次访问时间是在 24 小时前,并且包含所需的文本。
这是我已经尝试过的:
find / *.log -mtime +1 -print | grep "next" *.log
但这不起作用。
Question is: how can I reach the goal I have described above?Maybe some ways to modify my
find
expression?
最佳答案
您的命令的问题在于您正在 find 命令的输出上运行 grep - 这意味着您正在文件名上运行它,而不是内容(实际上,由于最后有 *.log ,所以您在所有 *.log 文件上运行它,完全忽略 find 命令找到的内容)。另外,您需要 -name 才能仅过滤 .log 文件。
您可以使用 find 的 -exec 标志对符合您的查找条件的每个文件执行命令:
find / -name "*.log" -mtime +1 -exec grep 'next' \{};
关于linux - 使用 "grep"和 "find"命令根据访问时间查找文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32923678/