find를 사용하여 마젠토 모듈 검색

find를 사용하여 마젠토 모듈 검색

마젠토 라우팅에는 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를 사용하여 파일을 열고 추가로 편집/분석할 수 있습니다.

관련 정보