#!/bin/bash # outcome: replace existing dot files with symlinks pointing to new version controlled files # setup folder pointers and target files dir=~/linux_user_setup backup=~/linux_user_setup_restore files=".bashrc .vimrc .tmux.conf .psqlrc" # create the resore directory if it doesn't already exist if [ ! -d $backup ] then mkdir $backup fi # loop through each target file, move it and create a symlink to the replacements for file in $files do #if the file is not a symlink the just _move_ it, otherwise _copy_ the linked file if [ ! -L $file ]; then echo "moving $file to $backup" mv ~/$file $backup echo "snapping $file to be a new symlink to version controlled file in $dir" ln -s $dir/$file ~/$file else # if the target file is a symlink, copy the linked file cp $(readlink -f $file) $backup fi done