Eu não acho que haja uma noção de "montagens úteis" que faça sentido em todos os cenários. Você deseja incluir unidades físicas removíveis e montagens de rede e excluir sistemas de arquivos para acesso ao sistema, como os que estão em /dev
, /proc
e /sys
. E quanto aos sistemas de arquivos montados pelo usuário? Saber que um sistema de arquivos é fornecido pelo FUSE não lhe diz o que é. Poderia ser um arquivo, uma montagem de rede, uma visão alternativa de um diretório, uma imagem de disco, uma maneira de controlar algum programa,…
Verificar se o nome do dispositivo começa com /
não parece útil para mim. Por exemplo, incluiria montagens de ligação e excluiria montagens de rede.
Acho que o melhor que você pode fazer é não reinventar a roda. Se nada mais, usando o mesmo mecanismo que os outros, você não vai confundir seus usuários (“por que o X lista esse sistema de arquivos, mas não o Y ???”). Além disso, há uma chance de que o que os outros fizeram possa fazer sentido.
Então, minha recomendação é usar bibliotecas do Gnome, pelo menos GTK +. O GTK + tem uma caixa de diálogo de abertura de arquivos que mostra alguns sistemas de arquivos montados em “Locais”. Os usuários podem controlar o que está listado lá até certo ponto - < href="https://unix.stackexchange.com/questions/198996/prevent-the-gtk-file-dialog-from-listing-mount-points"> se eles puderem descobrir isso , ou seja, . Mesmo que você não mostre o diálogo de abertura de arquivos do GTK +, use a mesma lista de “lugares” (não sei como obter isso, veja a documentação da API).