obtenha o dispositivo com o ponto de montagem

3

existe uma maneira de obter o nome do dispositivo (/dev/sdx) com a pasta montada? Quero dizer, pegue o dispositivo assosiated em um ponto de montagem usando a pasta montada como referência, ou crie um dicionário python com o mount points : devices ...

Eu sei que mount -l pode me dar as informações do sistema de arquivos montado, mas eu realmente não sei como despir para fazer o dicionário ...

alguma ajuda?

Atenciosamente ...

    
por Hairo 18.09.2012 / 02:45

3 respostas

6

Isto é totalmente não relacionado ao Ubuntu, mas você está aqui:

#!/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
    
por Sergey 18.09.2012 / 02:56
3

Por que não usar a interface do Gio? Eu gosto dessas soluções melhor do que executar um comando bash e analisar sua saída. Desta forma, você pode pegar exceções e ter mais controle.

Aqui está um pequeno exemplo:

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

Veja a documentação para métodos muito mais interessantes.

GVolumeMonitor

GVolume

Gmount

    
por Timo 18.09.2012 / 13:08
2
mount | cut -f 1,3 -d ' '

Explicação: cut é uma pequena ferramenta útil para dividir linhas usando um caractere delimitador (especificado pela opção -d ) e selecionando alguns dos campos para saída (usando uma lista de argumentos separados por vírgulas para a opção -f ). Como a saída mount é regular e delimitada por espaços, a saída acima exibe a primeira e a terceira colunas, omitindo "on" e o restante da linha.

    
por January 18.09.2012 / 10:03