RHEL(Gnu/Linux)에서 파일의 단어를 스캔/검색하는 올바른 방법은 무엇입니까?

RHEL(Gnu/Linux)에서 파일의 단어를 스캔/검색하는 올바른 방법은 무엇입니까?

우리는 Gnu/Linux 머신에서 단어를 스캔하고 싶습니다. 간단한 접근 방식은 다음과 같습니다.grep

grep -r "some_word" /var

그러나 전체 파일 시스템을 검사하려는 경우 grep -r "some_word" /검사하는 동안 파일 만 검사할 수는 없습니다 /proc(해당 파일은 제외되어야 함). 그렇다면 이러한 목적으로 스캔하는 데 유용한 도구가 있는지 궁금합니다.

나는 gnu에 대해 알고 있습니다 grep. 우리에게는 선택권이 있습니다 --exclude-dir. 하지만 여전히 Gnu/Linux 파일 시스템에서 단어를 검색하는 더 나은 방법을 알고 싶습니다.

답변1

find / -path /sys -prune -o -path /proc -prune -o -type f -exec grep -r "some_word" {} \;

나는 이것이 당신이 원하는 것이라고 믿습니다

답변2

해당 옵션을 사용하는 경우 find유틸리티는 단일 파일 시스템에 남아 있을 수 있습니다 -xdev. 이는 명령이

find / -xdev -type f -exec grep -w -F 'word' {} +

...루트 파일 시스템 내에 남아 있으며 /sys또는 를 입력하지 않습니다 /proc.

grep루트 파일 시스템에서는 단어를 찾기 위해 파일 경로 이름을 일괄 전달합니다 word.

마운트된 다른 파일 시스템도 검색하려면 해당 파일 시스템을 최상위 검색 경로로 나열하면 됩니다. 예를 들어, /home과 가 /tank별도로 마운트된 파티션이고 이를 검색하려는 경우,

find / /home /tank -xdev -type f -exec grep -w -F 'word' {} +

-xdev술어는 표준이며 전부는 아니더라도 대부분의 구현에서 작동합니다 find.

관련 정보