目的
/etc
以下にある設定ファイルを Git 管理下の所定のディレクトリに移動し、もとの設定ファイルはそこへのシンボリックリンクとしたい。
操作ミスによってファイルが消えないよう、安全にやりたい。
操作手順
以下の例は /etc/my.cnf
を /home/isucon/etc
下に置いて管理したい、という想定。
まずは対象のファイルを Git 管理下のディレクトリコピーします。
cp /etc/my.cnf /home/isucon/etc/my.cnf
失敗しても復帰できるよう、先にコミットしておきます。
cd /home/isucon/etc
git add my.cnf
git commit -m "add my.cnf"
最後にシンボリックリンクを作成します。
/etc
下への書き込み操作なので sudo
をつけます。
sudo ln -sb /home/isucon/etc/my.cnf /etc/my.cnf
補足説明
-b
オプションは、作成するシンボリックリンクと同名のファイルが存在している場合に、その既存ファイルのバックアップを作成してからシンボリックリンクを作成する、というものです。
以下のようにファイル名末尾に ~
がついたファイルが作成されていることが確認できます。
$ ls -l /etc | grep my.cnf
lrwxrwxrwx 1 root root 23 Jun 8 15:39 my.cnf -> /home/isucon/etc/my.cnf
-rw-r--r-- 1 root root 194 Apr 21 13:25 my.cnf~
「末尾に ~
がついていても設定ファイルとして認識されていた」という事故を防ぐため、正しくシンボリックリンクを作成できたことを確認したらこのバックアップは削除したほうがよいでしょう。