장치의 전체 파일 시스템 블록을 grep

장치의 전체 파일 시스템 블록을 grep

명령

grep -rHinF --colour=always -e "aa:aa:aa:aa" /

산출

grep: /dev/geom.ctl: Operation not supported by device
grep: /dev/devctl: Device busy

grep기기를 기다리는 중이라 진행이 안되는 것 같습니다 . 그러한 장치를 어떻게 건너뛸 수 있습니까?

답변1

find사용 가능한 경우 다음을 시도하십시오.

find / -type f -exec grep -rHinF --colour=always -e "aa:aa:aa:aa" {} +

이는 일반 파일에만 적용되므로 블록 및 문자 장치를 건너뜁니다. 보다 man find.

/proc또는 같은 디렉토리를 건너뛰고 싶을 수도 있습니다 /sys. Stephane Chazelas가 주석에서 지적했듯이 거기에 있는 일부 파일은 읽을 때 차단됩니다(열린 상태로 검색이 중단됩니다). 이렇게 하려면 -xdevaka를 시도해 볼 수 있습니다. -mount지시문에 따라 파일 시스템의 나머지 부분이 하나의 장치에 있다고 가정합니다. 지시문이 효과가 있다면 -fstype그게 더 좋을 것입니다(불행히도 Linux에서는 작동하지 않습니다).

IMO에서는 이 문제를 다루기보다는 한 번에 모든 작업을 수행하는 대신 실제로 검색하려는 최상위 디렉토리에 대해 프로세스를 반복해야 합니다(이 경우 찾을 필요가 없을 수도 있습니다...).

관련 정보