Ubuntu – How to access the Google Drive via the command line with Gnome Online Accounts

command linegnomegoogle-driveonline-accounts

I have two Google Drive accounts connected via Gnome Online Accounts (GOA). I can browse them with nautilus but I have not found how to access them through the command line. Shouldn't they be mounted somewhere even if they are network shares?

My objective is to be able to diff both to see if there are any files missing, as I'm copying files between them. I've tried copying the files directly via nautilus, but it stalls and whenever the window is not greyed out the message is that it will take months.

Thanks for your help

Best Answer

First, you need to mount the remote filesystem, which can be done by clicking on your email in Gnome's file explorer. You can use the gvfs commands Tony mentioned (now deprecated as they moved into gio) to interact with the mounted Google Drive filesystem.

If you try to open the folder from the file explorer in your terminal, you will notice that the working directory is /run/user/... and all the filenames and directory names are unreadable. I do not advise trying to manipulate the files through this path. Instead, the files can be accessed and manipulated through gio via readable URLs once it is mounted; for example google-drive://your_email@gmail.com/Directory%20One/File%20one.png

Some useful commands:

  • gio list [file_url] -ud: like ls, shows the full readable urls for the directory or glob within your Google Drive
  • gio copy [source local filepath or Google Drive file url] [destination local filepath or Google Drive file url]: like cp, and can be used to move files between your Google Drive and your disk.
  • gio open [file_url]: opens the file from your Google Drive in the default application

Note that accessing them either through the file explorer or this method is done just in time over the network rather than downloading your whole Google Drive to your disk. Because of this, repetitively accessing files can be slow.

It may be useful to:

  1. temporarily gio copy the files in question that you want to diff
  2. compare them locally
  3. make any necessary changes to either drive through gio
  4. remove the temporary files
Related Question