답변:
sudo find / -type f -exec grep "Strring" {} \;
그래도이 작업을 수행 하시겠습니까? 이것은 모든 파일 시스템을 통과 할 것이며 (로컬이든 아니든) 서버의 CPU를 최대한 활용할 수 있습니다.
sudo
거기에 던져서 모든 파일을 읽을 수 있으며 승자가 될 것입니다!
나는 두 번째 비 접근 방식입니다.
그러나 루트가 아닌 경우 권한 거부 메시지가 가득 차면 / dev / null로 리디렉션하십시오. 그런 다음 원하는 것을 다시 얻을 수 있습니다.
find . / 2>/dev/null | xargs grep MyString 2>/dev/null
Ubuntu 리포지토리에서와 같이 패키지화 된 ack을 설치 ack-grep
하십시오. 명령 조합을 사용하지 않고도 원하는 것을 정확하게 수행하는 find와 grep의 강력한 조합과 같습니다.
$ sudo ack-grep -a 'MyString' /
이 -a
옵션은 ack의 기본 필터링 동작을 무시하여 검색을 알고있는 파일 형식으로 제한합니다. "~"로 끝나는 백업 파일 또는 ".svn"과 같은 소스 제어 디렉토리와 같은 특정 파일과 디렉토리는 여전히 제외됩니다. -u
옵션 을 사용하여이 동작을 재정 의하여 모든 것을 완전히 검색 할 수 있습니다 .
검색을 특정 파일 형식으로 제한하려면
$ sudo ack-grep -aG '.*txt' MyString
에 대한 주장 -G
은 glob가 아닌 정규 표현식 이라는 점에 주목하십시오 .
또는 C ++ 파일과 같이 이미 알고있는 파일 형식의 경우 :
$ ack-grep --cpp 'SomeFunctionName'