GVFS for Accessing Files Over Any Protocol
The GNOME Virtual Filesystem lets you access files with Nautilus over many protocols as if on a filesystem. How pleased I was when I found it comes with a CLI.
GVFS would typically be used with file managers such as Nautilus, Thunar or PCManFM, to access files over FTP, PTP, WebDAV and a wealth of other protocols. However, there are also ways to get the most out of it and use it to access files in a more POSIX way with a handful of command-line interfaces.
This guide explains how to do so with a few tangible examples, with the assumption that you're not using any of the desktops environments and graphical whatsits which would normally sort it all up for you. This is useful to know when you use some of the more bare-bones window managers. You may soon want to add these commands to something like your ~/.xinitrc
file.
1 Start D-BUS
It all relies on D-BUS, which you need to start and set the environment variables it will provide you with:
% export $(dbus-launch)
2 Accessing Files
Here are two notable examples you might come across when you need to access files: from your smartphone (or camera) or from a WebDAV server.
2.1 From a Smartphone, Over PTP or MTP
You'll need to work out which USB port your phone is connected to first:
% gphoto2 --auto-detect
Model Port
----------------------------------------------------------
My Smartphone usb:002,032
Then use that information to effectively mount it:
% gvfs-mount 'gphoto2://[usb:002,032]'
Before long, you'll want to use a command line like:
% gvfs-mount "gphoto2://[$(gphoto2 --auto-detect | awk 'END { print $NF }')]"
It turns out that you can directly use gvfs-mount
to work out the location too:
% gvfs-mount -li | grep activation_root
2.2 From a WebDAV Server
It's even simpler: just pass the WebDAV location as argument to gvfs-mount
:
% gvfs-mount davs://dav.example.com/foo/bar/baz
3 Set Up a FUSE Mount Point
So far, when using gvfs-mount
, you will have noticed that we haven't specified a mount point like we normally would with the more regular mount
command. This is in fact done separately, as follows:
% mkdir ~/.gvfs
% /usr/lib/gvfs/gvfsd-fuse ~/.gvfs
It's worth noting that it doesn't matter when you do this, whether it's before running gvfs-mount
or after.
4 Unmounting Filesystems
... is carried out specifying the exact same location you used for mounting it. For instance:
% gvfs-mount -u "gphoto2://[$(gphoto2 --auto-detect | awk 'END { print $NF }')]"