すべてを

▼開く

閉じる▲

コピーの代わりにシンボリックリンクを作成する

○ファイル「myfile1」のシンボリックリンク「symboliclinkfile」を作成する

lsコマンドでコピーするファイルを見る
$ ls -li
 328176 drwxrwxr-x    2 masa users        4096  6月  2 18:13 dir1
 100159 -rw-rw-r--    2 masa users         529  5月  6 16:45 linkfile
 100159 -rw-rw-r--    2 masa users         529  5月  6 16:45 myfile1

cpコマンドで-sオプション、コピー元ファイルとシンボリックリンクファイルを指定する
$ cp -s myfile1 symboliclinkfile

cpコマンドで-sオプションを指定し、ファイル「myfile1」と「symboliclinkfile」を指示すると、シンボリックリンクが作成される。

lsコマンドでコマンド実行結果を確認する
$ ls -li
 328176 drwxrwxr-x    2 masa users        4096  6月  2 18:13 dir1
 100159 -rw-rw-r--    2 masa users         529  5月  6 16:45 linkfile
 100159 -rw-rw-r--    2 masa users         529  5月  6 16:45 myfile1
 100169 lrwxrwxrwx    1 masa users           7  6月  3 15:10 symboliclinkfile -> myfile1

「linkfile」と「myfile1」はハードリンクなので同じi-ノード番号を持つ。しかし、「myfile1」とそのシンボリックリンク「symboliclinkfile」は異なるi-ノード番号を持つ。シンボリックリンクファイル「symboliclinkfile」のパーミッションの先頭には、リンクであることを示す「l」が表示されている。

ファイルにシンボリックリンクを作成する

○「myfile1」のシンボリックリンク「slinkfile1」を作成する

lsコマンドでリンクを作成するファイルを見る
$ ls -l
-rw-rw-r--    1 masa users         268  6月  3 21:48 myfile1

lnコマンドで-sオプション、リンク元ファイルとリンクファイルを指定する
$ ln -s myfile1 slinkfile1

lnコマンドに-sオプションを指定し、リンク元のファイル「myfile1」、リンクファイル「slinkfile1」を指定すると、シンボリックリンクが作成される。指定するファイル名の順番を間違えないこと。

シンボリックリンクされたファイルのパーミッションは意味を持たない。リンク元のパーミッションが有効になる。シンボリックリンクは同じファイルに対して複数作ることができる。また、シンボリックリンクファイルにさらにシンボリックリンクを作ることもできる。

リンク元ファイルを削除すれば、リンク先からはファイルを参照することができなくなる。

lsコマンドで実行結果を見る
$ ls -li
  98309 -rw-rw-r--    2 masa users         268  6月  3 21:48 myfile1
 100150 lrwxrwxrwx    1 masa users           7  6月 11 15:29 slinkfile1 -> myfile1
  98309 -rw-rw-r--    2 masa users         268  6月  3 21:48 userfile1