내가 올바르게 이해한다면 Linux에서는 모든 것이 모든 하드웨어에 이르는 경로입니다. 센서 구조에 대한 정보를 얻으려고 하므로 트리를 사용하여 hwmon 디렉토리의 모든 것을 매핑해야겠다고 생각했습니다. 그러나 이 디렉토리에서는 트리가 이전과는 다르게 동작합니다.
일반 디렉토리에서 tree를 실행하면 -R 또는 -L 플래그를 사용하지 않고 하위 디렉토리 구조를 얻습니다.
$ tree /home
/home
└── boss
├── clones
├── Desktop
├── Documents
│ ├── modules.txt
│ ├── old_docs
│ │ └── assorted
│ └── prepscript.txt
├── Downloads
├── Music
├── Pictures
├── Public
├── Templates
└── Videos
12 directories, 2 files
하지만 HWmon에서도 동일한 작업을 수행하려고 합니다. -R 플래그를 사용하고 더 깊은 내용이 있음에도 불구하고 한 수준 깊이로만 진행됩니다.
$ tree /sys/class/hwmon/
/sys/class/hwmon/
├── hwmon0 -> ../../devices/pci0000:40/0000:40:01.3/0000:43:00.0/hwmon/hwmon0
├── hwmon1 -> ../../devices/pci0000:00/0000:00:01.3/0000:09:00.0/hwmon/hwmon1
├── hwmon2 -> ../../devices/pci0000:40/0000:40:03.1/0000:44:00.0/hwmon/hwmon2
├── hwmon3 -> ../../devices/pci0000:00/0000:00:18.3/hwmon/hwmon3
├── hwmon4 -> ../../devices/pci0000:00/0000:00:19.3/hwmon/hwmon4
├── hwmon5 -> ../../devices/virtual/thermal/thermal_zone0/hwmon5
└── hwmon6 -> ../../devices/platform/nct6775.656/hwmon/hwmon6
7 directories, 0 files
$ tree /sys/class/hwmon/hwmon0
/sys/class/hwmon/hwmon0
├── device -> ../../../0000:43:00.0
├── fan1_input
├── name
├── power
│ ├── async
│ ├── autosuspend_delay_ms
│ ├── control
│ ├── runtime_active_kids
│ ├── runtime_active_time
│ ├── runtime_enabled
│ ├── runtime_status
│ ├── runtime_suspended_time
│ └── runtime_usage
├── pwm1
├── pwm1_enable
├── pwm1_max
├── pwm1_min
├── subsystem -> ../../../../../../class/hwmon
├── temp1_auto_point1_pwm
├── temp1_auto_point1_temp
├── temp1_auto_point1_temp_hyst
├── temp1_crit
├── temp1_crit_hyst
├── temp1_emergency
├── temp1_emergency_hyst
├── temp1_input
├── temp1_max
├── temp1_max_hyst
├── uevent
└── update_interval
3 directories, 27 files
이러한 행동 차이의 원인은 무엇입니까? 모든 장치의 간단한 트리를 얻을 수 있나요?
답변1
tree
이는 기본적으로 심볼릭 링크를 역참조하지 않기 때문입니다. 이 -l
옵션은 다음과 같이 변경됩니다.
tree -l /sys/class/hwmon/
그러나 당신은 모든 결과를 이해하게 되어 기뻐할 것입니다.