find 명령의 예기치 않은 동작

find 명령의 예기치 않은 동작

다음 명령과 출력을 검토하십시오.

$ cat /sys/class/graphics/fb0/virtual_size
  1920,1080

$ file /sys/class/graphics/fb0/virtual_size
  /sys/class/graphics/fb0/virtual_size: ASCII text

$ grep -H 1920 /sys/class/graphics/fb0/virtual_size
  /sys/class/graphics/fb0/virtual_size:1920,1080

따라서 virtual_size는 일반 텍스트 파일입니다.

$ find /sys -type f -exec grep -H 1920 '{}' \; 2> /dev/null
  /sys/fs/cgroup/blkio/blkio.throttle.io_service_bytes:8:0 Read 273361920
  /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/modes:1920x1080
  /sys/devices/pci0000:00/0000:00:02.0/graphics/fb0/modes:U:1920x1080p-0
  /sys/devices/pci0000:00/0000:00:02.0/graphics/fb0/virtual_size:1920,1080
  /sys/module/r8169/coresize:81920

그런데 find 명령이 /sys/class/graphics/fb0/virtual_size파일을 찾을 수 없는 이유는 또 다른 텍스트 파일일 뿐이니까요. 그렇죠?

답변1

아마도/sys/class/graphics/fb0/virtual_size /sys/devices/pci0000:00/0000:00:02.0/graphics/fb0/virtual_size.

readlink -f /sys/class/graphics/fb0/virtual_size확인해보세요 .

namei -l /sys/class/graphics/fb0/virtual_size어떻게 이런 일이 발생하는지 확인하세요(경로 구성 요소 중 최소한 하나는 /sys/class/graphics/fb0/virtual_size심볼릭 링크여야 함).

find-L옵션(이전의 술어)을 사용하지 않는 한 디렉토리 트리를 내려갈 때 기호 링크는 따라가지 않습니다 -follow.

그러나 이를 사용해도 /sys심볼릭 연결된 스파게티 요리이므로 아무데도 갈 수 없습니다.

관련 정보