Comportamento incomum do comando find

0

Por favor, olhe os seguintes comandos e sua saída:

$ 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

então virtual_size é um arquivo de texto normal

$ 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

mas porque o comando find não consegue encontrar /sys/class/graphics/fb0/virtual_size file, é apenas outro arquivo de texto, certo?

    
por Edward Torvalds 11.05.2015 / 22:09

1 resposta

1

Provavelmente /sys/class/graphics/fb0/virtual_size é /sys/devices/pci0000:00/0000:00:02.0/graphics/fb0/virtual_size .

Tente readlink -f /sys/class/graphics/fb0/virtual_size para confirmar.

namei -l /sys/class/graphics/fb0/virtual_size para ver como isso aconteceu (um dos componentes do caminho de /sys/class/graphics/fb0/virtual_size , pelo menos, deve ser um link simbólico).

find não segue links simbólicos ao descer a árvore de diretórios, a menos que você use a opção -L (anteriormente -follow predicate).

No entanto, usá-lo em /sys não o levará a lugar nenhum, pois é um prato de spaghetti de links simbólicos.

    
por 11.05.2015 / 22:20

Tags