![从根目录递归搜索包含单词的多个文件](https://linux22.com/image/158441/%E4%BB%8E%E6%A0%B9%E7%9B%AE%E5%BD%95%E9%80%92%E5%BD%92%E6%90%9C%E7%B4%A2%E5%8C%85%E5%90%AB%E5%8D%95%E8%AF%8D%E7%9A%84%E5%A4%9A%E4%B8%AA%E6%96%87%E4%BB%B6.png)
我有一个问题,我需要找出一个完全未知的文件存储在哪里(不知道它可以保存在哪里,也不知道它保存在什么文件名下)。我可以运行一个命令来搜索文件内容并查看内容是否包含特定短语吗?我编写了一些文件内容,因此我知道所有文件在每个文件的顶部都包含此文本。 “始终验证是否存在”。并不真正关心这是否需要一段时间才能运行,因为更关心的是找到这些文件。
答案1
您可以使用find
。
find / -type f -size -10000000c -exec grep -l 'ALWAYS VERIFY THAT THERE IS' /dev/null {} + 2>/dev/null
将查找长度小于 10,000,000 个字符的文件并打印出名称。如果您知道文件较短,则进行相应调整。
这会在文件中的任何位置查找该短语,而不仅仅是在顶部。通过将搜索限制在第一行可以加快速度。
如果您知道是您保存了文件,正如您所暗示的那样,那么
find / -user FRED -type f -size -10000000c -exec grep -l '...
将 FRED 替换为您的用户 ID 将意味着要搜索的文件更少。