Sometimes, when working with directories and files, we want to reference the same file in a different directory.
This is most apparent when you want to upload dotfiles and config on github so you can backup and pull down these onto any computer.
Lets get started and you’ll see how my setup will help your setup.
Working with files
You can create an “original” file and create as many “links” pointing to the original as desired.
1. Create a txt file
``$ echo "test" > tmp1.txt
2. Create a symbolic link and new txt file
$ ln -s tmp1.txt tmp2.txt
You now have this output on ls -lA
Working with config files
1 – Download your config files directories.
I use a ~/.vim
directory to store all my relevant vim
related configs and plugins.
cd && git clone https://github.com/theptrk/.vim
2 – Symlink your ~/.vim/.vimrc
to the system ~/.vimrc
dsfdsaf
You system will look for ~/.vimrc
when booting up your vim and doesn’t know about your fancy new config folder. If you symlink these, then your system will boot your version controlled config!
ln -s ~/.vim/.vimrc .vimrc
3 – Double check your symlink
ls -lA
This should show .vimrc ->/Users/YourName/.vim/.vimrc
Gotchas:
Links reference abstract filenames/directories and NOT physical locations on disk.
Links will not reference the original if either is moved
If you delete the original, the linked files still exist as “orphaned” links that point to nothing. However, if you then save to the linked file, the “original” will be recreated.