使用 find 来检测 magento 模块

使用 find 来检测 magento 模块

在magento路由位于adminhtml/routes.xml每个模块都有一个以adminhtml文件命名的文件夹routes.xml每个模块都有自己的文件夹。换句话说,我有以下文件结构:

vendor
+ MyModule
++ etc
+++ adminhtml
++++ routes.xml
+ AnotherModule
++ etc
+++ adminhtml
++++ routes.xml
....

我想扫描vendor目录并查看哪些文件路径route.xml具有特定单词:

$ find ./vendor -name adminhtml\/routes.xml -exec grep "sales" {} + 

但我没有得到任何价值,而且还收到以下警告:

find: warning: ‘-name’ matches against basenames only, but the given pattern contains a directory separator (‘/’), thus the expression will evaluate to false all the time.  Did you mean ‘-wholename’?

如何找到位于特定文件夹模式中且具有特定单词的文件?

答案1

你需要-path

find ./vendor -path '*/adminhtml/routes.xml' -exec grep "sales" {} + 

(可能对于-type f,不太可能会有名为 的目录routes.xml。)

答案2

我的一种方法是过滤所有与routes.xml名称匹配并包含所需 wotd 的文件,然后使用 grep 进一步过滤 find 的结果:

find ./vendor -name routes.xml -exec grep "sales" {} + | grep adminhtml

然后您可以使用 IDE 打开该文件并进一步编辑/分析它。

相关内容