Using rsync to selectively restore a backup (with/without dotfiles)

If you have backed up your entire home directory, and are restoring it onto a new computer, sometimes you do not want to copy over all of the .dotfiles (hidden files and directories that start with a period) in your home directory. This can be especially useful if you are upgrading the operating system version and many applications are also upgraded, and you want to re-configure them manually.

To restore everything BUT the .dotfiles in the main root directory you can use the following rsync command (the command must be executed from inside the backed up home directory):

rsync -av - --exclude="/.*" ./ /home/NewHomeDir

Note that this WILL copy all .dotfiles in directories under the main home directory.

I do recommend keeping all of your old home directory dotfiles in a separate “dotfile” directory, because invariably you will need something from in them (such as an SSH private key, GPG key, etc…)

You can copy JUST the .dotfiles from the home directory (including recursing into .dotdirectories) with the following command:

rsync -av /path/to/sourcedir/.??* /path/to/dest

The .??* selects only files/directories in the sourcedir that start with a dot. Note that .* alone would select ALL files and directories in the sourcedir.

Leave a Reply

Your email address will not be published. Required fields are marked *