如何编程获取以指定字符串开头的所有可能的磁盘分区路径?
实现方案
你可以通过遍历/dev/disk/by-id目录下的所有符号链接,结合正则匹配的方式批量筛选符合要求的分区路径,参考实现代码如下:
import os import re disk_id = "40014ee0aee34570" by_id_dir = "/dev/disk/by-id/" # 构造匹配规则:前缀为指定磁盘标识,后缀为-part加任意数字 match_pattern = re.compile(rf'^wwn-0x{disk_id}-part\d+$') valid_partitions = [] for entry in os.listdir(by_id_dir): if match_pattern.match(entry): link_path = os.path.join(by_id_dir, entry) real_dev_path = os.path.realpath(link_path) valid_partitions.append((link_path, real_dev_path)) # 输出结果 if valid_partitions: print("匹配到的分区如下:") for link, dev in valid_partitions: print(f"软链接路径:{link} | 真实设备路径:{dev}") else: print("未找到符合要求的分区")
逻辑说明
- 正则规则
rf'^wwn-0x{disk_id}-part\d+$'会严格匹配-part后只跟数字的条目,不会误匹配其他无关标识 /dev/disk/by-id是内核生成的虚拟tmpfs目录,遍历开销极低,不需要读取物理磁盘- 如果你不需要严格校验后缀格式,也可以用更简单的glob方式快速筛选:
import glob disk_id = "40014ee0aee34570" match_paths = glob.glob(f'/dev/disk/by-id/wwn-0x{disk_id}-part[0-9]*')
内容的提问来源于stack exchange,提问作者m_m
相关产品推荐
相关产品推荐

