결과 내에서 검색하는 것보다 특정 폴더 이름을 검색하는 찾기 명령

결과 내에서 검색하는 것보다 특정 폴더 이름을 검색하는 찾기 명령

공유 호스팅 환경에서 호스팅되는 여러 WordPress 사이트가 있습니다. 모든 WordPress 사이트와 마찬가지로 "업로드" 디렉토리가 있습니다. 정기적으로 해당 폴더 내에 있는 잠재적인 악성 파일을 검색하고 싶지만 하나씩 검색하고 싶지는 않습니다.

그래서 질문은 확장자가 ".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 등 의 정규 표현식을 알고 있다면 구문이 번거롭습니다 .

관련 정보