우리는 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
.