Есть ли способ получить имя устройства (/dev/sdx)
с помощью смонтированной папки? Я имею в виду, получить связанное устройство в точке монтирования, используя смонтированную папку в качестве ссылки, или создать словарь python с mount points : devices
...
Я знаю, что mount -l
может получить информацию о смонтированной файловой системе, но я не знаю, как ее раздеть, чтобы создать словарь ...
любая помощь?
С уважением ...
Это совершенно не связано с 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
Почему бы не использовать интерфейс Gio? Мне нравятся эти решения лучше, чем выполнение команды bash и анализ ее выходных данных. Таким образом, вы можете ловить исключения и иметь больше контроля.
Вот небольшой пример:
>>> from gi.repository import Gio
>>> vm = Gio.VolumeMonitor.get()
>>> for v in vm.get_volumes():
... print v.get_name()
См. Документацию для гораздо более интересных методов.
mount | cut -f 1,3 -d ' '
Объяснение: cut
- это небольшой удобный инструмент для разделения строк с использованием символа разделителя (заданного параметром -d
) и выбора некоторых полей для вывода (используя список аргументов, разделенных запятыми, для [ 113] вариант). Так как вывод mount
является регулярным и разделен пробелами, приведенный выше выводит первый и третий столбец, пропуская «on» и остаток строки.