查找命令搜索特定文件夹名称,然后在结果中搜索

查找命令搜索特定文件夹名称,然后在结果中搜索

我有很多托管在共享主机环境中的 wordpress 网站。与每个 wordpress 网站一样,它们都有“uploads”目录。我想定期搜索这些文件夹中的潜在恶意文件,但我当然不想一个接一个地搜索。

所以问题是我如何在所有“上传”目录中搜索扩展名为“.php”的文件

例如:

find . -type d -iname "uploads"

获取我的根目录中的所有“上传”文件夹,但我还想在这些目录中进行搜索

答案1

可以将命令的输出通过管道传输到另一个命令,但你可以同时搜索两个条件,使用grep常用表达

find . -type f | grep -i "/uploads/.*\.php$"

怎么运行的:

  • find . -type f列表全部当前目录及其子目录中的文件。

  • grep -i "/uploads/.*\.php$"过滤输出:

    • -i使搜索不区分大小写

    • /uploads/.*\.php$是一行必须匹配才能显示的正则表达式

      • /uploads/ php正是

      • .*是任意类型字符的任意出现次数

      • \.是文字.

      • $标志着行尾

您可以使用以下方法获得相同的结果

find . -type f -iregex ".*/uploads/.*\.php"

grep但是如果您了解、Perl、PHP、JavaScript 等的正则表达式,那么语法就会很麻烦。

相关内容