Why do you need dotfiles_old when you are creating dotfiles

115 views Asked by At

I found this one for my dotfiles. But I don't understand why the author makes dotfiles_old. Instead you just move to dotfiles.

  1. Is there any good reasons to do it so? If so why?

  2. Can I do it without dofiles_old? Is is a good idea?

Code:

#!/bin/bash
############################
# .make.sh
# This script creates symlinks from the home directory to any desired dotfiles in ~/dotfiles
############################

########## Variables

dir=~/dotfiles                    # dotfiles directory
olddir=~/dotfiles_old             # old dotfiles backup directory
files="bashrc vimrc vim zshrc oh-my-zsh"    # list of files/folders to symlink in homedir

##########

# create dotfiles_old in homedir
echo "Creating $olddir for backup of any existing dotfiles in ~"
mkdir -p $olddir
echo "...done"

# change to the dotfiles directory
echo "Changing to the $dir directory"
cd $dir
echo "...done"

# move any existing dotfiles in homedir to dotfiles_old directory, then create symlinks 
for file in $files; do
    echo "Moving any existing dotfiles from ~ to $olddir"
    mv ~/.$file ~/dotfiles_old/
    echo "Creating symlink to $file in home directory."
    ln -s $dir/$file ~/.$file
done
2

There are 2 answers

0
Vinicius Souza On

the best approach is to create a folder dotfiles in $ HOME and make symlinks to their configuration files.

Have an example here: https://github.com/vsouza/dotfiles

Each folder has a install.sh file that takes care of creating symbolic links.

0
that other guy On

With ~/dotfiles_old, if you discover that you forgot to update ~/dotfiles/bashrc with your new fancy prompt, you can just copy it from ~/dotfiles_old/.bashrc.

Without ~/dotfiles_old, any changes you've made in your home directory will be permanently lost.

Whether you care is entirely up to you. It's for the benefit of the user, and not the script.