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不会让你一事无成,因为它是一个符号链接的意大利面条盘。

相关内容