O local que os compartilhamentos SMB montam por gvfs
pode ser muito específico da distribuição ou específico do GNOME (GNOME2 vs. GNOME3). Os locais geralmente são $HOME/.gvfs
em versões mais antigas, mas em versões mais recentes de gvfs
o local foi alterado para /run/user/<userid>/gvfs
.
Se você estiver questionando onde esse diretório está em um determinado sistema, use o comando mount
para descobrir onde gvfs
está montando as coisas.
$ mount |& grep -i gvfs
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
NOTA: No meu sistema (Fedora 19) o meu userid é 1000.
$ id -u
1000
O gvfs está rodando?
O diretório $HOME/.gvfs
pode, de fato, ser o diretório correto. Verifique se o daemon está sendo executado.
$ ps -eaf|grep gvfs
saml 1724 1 0 Jan11 ? 00:00:02 /usr/libexec/gvfsd
saml 1728 1 0 Jan11 ? 00:00:02 /usr/libexec//gvfsd-fuse -f /run/user/1000/gvfs
Se um processo como este estiver em execução e o diretório estiver vazio, o problema é que não há nenhum compartilhamento SMB atualmente montado.
Use este script Python
Eu encontrei este mehtod que você poderia usar para localizar o diretório correspondente a um dado smb://
caminho para um servidor + compartilhamento.
Exemplo
Crie o script a seguir, atualizando o uri
para que aponte para um URI real que você está tentando acessar. Eu chamei o script gvio_gvfs.py
.
#!/usr/bin/env python
from gi.repository import Gio
# uri='SMB://server/share/file'
uri='SMB://tank/t'
gvfs=Gio.Vfs.get_default()
path=gvfs.get_file_for_uri(uri).get_path()
print path
Torne-o executável e execute-o.
$ chmod +x gvio_gvfs.py
$ ./gvio_gvfs.py
/run/user/1000/gvfs/smb-share:server=tank,share=t