<Marc Qualie/>

Symbolic Links and Dropbox

Do you have certain files you need to keep synced up on many different machines? For example, home work and a spare laptop? Well with Dropbox it's very easy to do this, simply drop the files into the folder, and it'll be synced over all your computers. That all sounds nice and dandy, but what if you have a lot of files, in different locations, that you need to sync on a daily basis? This is where syncing gets tricky, who wants to continuously copy files over all the time from folder to folder? This is where I found an amazing practical use for symbolic links. We will take game save data for example.

Most game save data to the my documents folder, and are normally saved under weird names, which isn't helpful. Say you play a game at work, and you want to carry on at home, where you left off. Your first option is to manually locate the game save folder, and copy the files to Dropbox, then when you get home, you can copy the dropbox files to overwrite the files on your home machine. This is time consuming, and also has the scenario where you forgot to copy your files one day, and suddenly you can't carry on from another location. This is where the symbolic links come into play. Simply copy the game save folder to your Dropbox, anywhere you like.

I normally save mine under /Games/[Game_Name]/Save Data. Then, you create a symbolic link to this folder, where your save files are meant to be on the system. As the game loads, it will see the symbolic link as the actual files, since the operating system follows the loop hole transparently. You also do the same at home, however you simply create the symlink to the folder you have already created in your dropbox.

Now whenever you play the game from any location you have the symlinks setup, the save data will automatically be saved in your Dropbox. There are many, many more scenarios where you can use this method, so I hope this helps save someone some valuable time.

If you have any questions about this post, or anything else, you can get in touch on Twitter or browse my code on Github.