我想找到 /sys/devices 下具有重新扫描选项/文件的每个设备(以便我可以动态调整磁盘大小),但 UNIX find 似乎找不到它们。例如:
# file /sys/class/block/sda/device/rescan
/sys/class/block/sda/device/rescan: writable, regular file, no read permission
但:
# find /sys/class/block -name 'rescan'
空手而归。
此外,find 仅查找父设备,即
# find /sys/class/block
/sys/class/block
/sys/class/block/fd0
/sys/class/block/sda
/sys/class/block/sr0
/sys/class/block/dm-0
/sys/class/block/dm-1
/sys/class/block/dm-2
/sys/class/block/sda1
/sys/class/block/sda2
/sys/class/block/sda3
当这些设备下实际上有很多选项/文件时(如果您知道在哪里查找),例如:
# ls -1 /sys/class/block/sda/device/
block
bsg
delete
device_blocked
device_busy
dh_state
driver
eh_timeout
evt_capacity_change_reported
evt_inquiry_change_reported
evt_lun_change_reported
evt_media_change
evt_mode_parameter_change_reported
evt_soft_threshold_reached
generic
inquiry
iocounterbits
iodone_cnt
ioerr_cnt
iorequest_cnt
modalias
model
power
queue_depth
queue_ramp_up_period
queue_type
rescan
rev
scsi_device
scsi_disk
scsi_generic
scsi_level
state
subsystem
timeout
type
uevent
unpriv_sgio
vendor
vpd_pg80
vpd_pg83
wwid
提前致谢,
帕特里克
答案1
下面的内容/系统包含许多符号链接,例如父设备你想搜索/系统/类/块.
find
默认情况下不遵循符号链接,这意味着find
不会在符号链接的目录中搜索。
可以使用 开关改变此行为,-L
使其find
遵循符号链接。
由于/系统以及此目录结构中的许多符号链接,find
将检测文件系统循环并在命令行上报告stderr
。要过滤掉这些消息,您可以find
按如下方式运行命令。
find -L /sys/class/block -name 'rescan' 2> /dev/null