LINKUP: A simple symlink farmer

Last modification on


Keeping scripts and application dotfiles up-to-date between machines can be a real hassle. To deal with this, I version my config files using git, and install them in the right place using this tool (linkup). GNU Stow is a viable alternative, but more complex than I deemed necessary and dependent on perl.


The program fits inside a single, small C file (~230 LOC).

It supports two modes of operation, install and uninstall, both taking SRC and DST arguments.

During install, symlinks for files in SRC are created in DST, and dangling symlinks in DST that point into SRC are removed. If a path already exists in DST, it is only replaced if it is a symlink or -f was specified to force the operation.

During uninstall, all symlinks in DST pointing into SRC are removed.

The source code is available at: