ひさしぶりにストレージを増設した。様々な経験を経てITの使い方が変化すると、ただ新しいストレージにデータを移動するだけでは解決できない制約も生じる。その典型例の一つが、古いパスでデータを参照する必要がある場合だ。
アプリケーションが参照する先を変えたくない、変えられない場合もあるだろうし、データの参照方法はそのままに、その背後にあるデータの配置だけを変えたい場合もあるだろう。いずれの場合にせよ、使えるのがシンボリックリンクだ。
この投稿では、その前提知識と、シンボリックリンクのつくり方、その更新方法を紹介する。
おさらい - ハードリンクとソフトリンク
有効範囲 | リンク先 | 具体例 | |
---|---|---|---|
ハードリンク | 単一ボリューム内 | ファイルのみ | |
ソフトリンク1 | 単一ローカル環境 | フォルダのみ | ジャンクション |
ソフトリンク2 | ローカル リモート |
ファイル フォルダ |
エイリアス ショートカット シンボリックリンク |
ハードリンク
ハードリンクは、ある一つのデータに対して複数のリンクを提供する。例えば、次のような場合に用いる。
- 一つのファイルに対して、複数のパスを定義する。
- あるコマンドに対して、複数の呼び出し方を定義する。
ハードリンクは単一ボリューム内でしか機能しない。ハードリンクも、それが対象とするファイルも、同一のボリューム内に存在する必要がある。
シンボリックリンクを作り、リンク先を変更する。
次の状況を仮定する。
古い場所 | c:\old-path |
新しい場所 | d:\new-path |
別の場所 | d:\another-path |
管理者は、データを古い場所から新しい場所へ移行する必要がある。しかしユーザーの参照方法を変更したくない。このようなとき、管理者はデータ移行後にシンボリックリンクを作る。
new-item -itemtype symboliclink -path c:\old-path -target d:\new-path
もし別の場所へデータ移行しなければならないとき、「force」オプションを指定して、シンボリックリンクのリンク先を更新(上書き)することもできる。
new-item -itemtype symboliclink -path c:\old-path -target d:\another-path -force