получить устройство с точкой монтирования

Есть ли способ получить имя устройства (/dev/sdx) с помощью смонтированной папки? Я имею в виду, получить связанное устройство в точке монтирования, используя смонтированную папку в качестве ссылки, или создать словарь python с mount points : devices ...

Я знаю, что mount -l может получить информацию о смонтированной файловой системе, но я не знаю, как ее раздеть, чтобы создать словарь ...

любая помощь?

С уважением ...

3
задан 18 September 2012 в 04:45

3 ответа

Это совершенно не связано с 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
0
ответ дан 18 September 2012 в 04:45

Почему бы не использовать интерфейс Gio? Мне нравятся эти решения лучше, чем выполнение команды bash и анализ ее выходных данных. Таким образом, вы можете ловить исключения и иметь больше контроля.

Вот небольшой пример:

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

См. Документацию для гораздо более интересных методов.

GVolumeMonitor

GVolume

Gmount

0
ответ дан 18 September 2012 в 04:45
mount | cut -f 1,3 -d ' '

Объяснение: cut - это небольшой удобный инструмент для разделения строк с использованием символа разделителя (заданного параметром -d) и выбора некоторых полей для вывода (используя список аргументов, разделенных запятыми, для [ 113] вариант). Так как вывод mount является регулярным и разделен пробелами, приведенный выше выводит первый и третий столбец, пропуская «on» и остаток строки.

0
ответ дан 18 September 2012 в 04:45

Другие вопросы по тегам:

Похожие вопросы: