githubのリポジトリにdot files(設定ファイル)をpushするための、シンボリックリンクの設定。

前回のエントリーの続き。

何をしたいのか

githubにdot files(設定ファイル、例えば.vimrcとか)をpushしたい。

そのためには、dot filesをgitの管理下に置く必要がある。

でも、dot filesは基本的にホームディレクトリ(~/)におかれている必要がある。

ということ。

もともとは
~
 |- .vimrc
 |- .zshrc
 |- .zshev

みたいになっていたものをgitの管理下へ(例えばdot_filesディレクトリ以下へ)

~
 |- dot_files
       |- .vimrc
       |- .zshrc
       |- .zshenv
       |- .git
              |-

にしたいが、すると読み込まれなくなる。

ということで、シンボリックリンクの登場。

たしか、windowsにはシンボリックリンクと言う概念がないはず。ということで、mac/unix/linuxのお話になる。
(どうやら一部のwindowsでは使えるらしい。条件あり。)

シンボリックリンクとは

unix系OSでのファイルシステムの機能の一つ。
もともとのファイルやディレクトリと全く同じように操作できるモノを、もともとのファイルやディレクトリと別の名前や別の場所に作ることができる。ちなみに、シンボリックリンクを通して、もともとのファイルやディレクトリを削除することはできない。

ハードリンク、という概念になると、もともとのファイルやディレクトリも削除することができる。

ショートカットやエイリアスと同じでは?と思うかもしれないが、ショートカットやエイリアスでは、リンクさせるだけで、全く同じように操作することはできない。

実際にどうするか?

.vimrcを例にとって、

% mv ~/.vimrc ~/dot_files/.vimrc
% ln -s ~/dot_files/.vimrc ~/.vimrc

これだけ。
ファイルを移動させて、移動させたファイルに対するシンボリックリンクをつくる。

ということ。

lnコマンドはファイルやディレクトリに対してリンクファイルを作成するもの。

あとはgithubにプッシュするだけ。

% git add
% git commit -m '[message]'
% git push origin master

らくちん。

-sugilog's dot_files at master - GitHub