获取具有挂载点的设备

获取具有挂载点的设备

有没有办法(/dev/sdx)通过挂载文件夹获取设备名称?我的意思是,使用挂载文件夹作为参考,获取挂载点中的关联设备,或者使用mount points : devices...创建一个 Python 字典

我知道这mount -l可以让我获取已挂载的文件系统信息,但我真的不知道如何剥离它来制作字典......

有什么帮助吗?

问候...

答案1

这与 Ubuntu 完全无关,但您可以在这里:

#!/usr/bin/env python

import subprocess

mounts = {}

for line in subprocess.check_output(['mount', '-l']).split('\n'):
    parts = line.split(' ')
    if len(parts) > 2:
        mounts[parts[2]] = parts[0]

print mounts

答案2

为什么不使用 Gio 接口?我更喜欢这些解决方案,而不是执行 bash 命令并解析其输出。这样你就可以捕获异常并拥有更多的控制权。

以下是一个小例子:

>>> from gi.repository import Gio
>>> vm = Gio.VolumeMonitor.get()
>>> for v in vm.get_volumes():
...     print v.get_name()

请参阅文档以了解更多有趣的方法。

音量监控器

体积

格芒特

答案3

mount | cut -f 1,3 -d ' '

说明:cut是一个方便的小工具,用于使用分隔符(由选项指定-d)拆分行并选择一些字段进行输出(使用逗号分隔的选项参数列表-f)。由于mount输出是常规的并且由空格分隔,因此上面的输出是第一列和第三列,省略了“on”和行的其余部分。

相关内容