20
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Symbolic link を貼る

Last updated at Posted at 2019-08-22

Symbolic link

Linux の Symbolic link File (シンボリックリンクファイル) とは、Windows でいうショートカットのようなもので、ディレクトリやファイルを参照するファイル。対象までのパスを含んだ小さなファイル。

Hard link との違い

  • Hard link は、Hard link を削除することで参照先ファイル・ディレクトリが削除される。

  • Symbolic link は、Symbolic link を通じての参照先ファイル・ディレクトリの削除はできない。

Symbolic link File 自体を削除しても参照先のファイル・ディレクトリへの影響はない。また、参照先のファイル・ディレクトリが削除されても Symbolic link File は残る。

Symbolic link を作成する

ln -s 参照先ディレクトリ(ファイル)のパス [シンボリックリンクのファイル名]

ln コマンド ... ディレクトリやファイルへのリンクを登録する。-s を付けると Symbolic link、つけないと Hard link となる。

※ 参照先ファイル、シンボリックリンクのファイル名部分は、フルパスでも相対パスでも指定可能。
シンボリックリンクのファイル名は省略可能で、省略した場合、参照先に指定した同じファイル名/ディレクトリ名でカレントディレクトリに Symbolic link が作成される。

活用例

  • ファイル

ファイルにリンクを貼ってみます。

$ pwd
> /usr/local/bin
$ ln -s /opt/other/module/bin/ruby ruby

/usr/local/bin/ruby を使おうとすると /opt/other/module/bin/ruby を使うようになります。

  • ディレクトリ

ディレクトリにリンク貼った時はこんな感じです。

$ touch work/target/test.txt # test.txt を作っておく
$ ln -s work/target target # ディレクトリに symlink をはる

$ echo abc > target/test.txt # symlink を使ってみる
$ cat work/target/test.txt # 参照元のディレクトリ配下に反映されている 
> abc

Symbolic link File の消し方

unlinkrm どちらでも消せますが、rm はディレクトリも消せてしまうため、unlink を使う方が安全らしいです。(coreutils ではソースが違うが、FreeBSD だと unlink は rm のハードリンクなので、ディレクトリ削除ができない rm と考えて良さそう。)

$ unlink symlink 

Symbolic link を経由せずにカレントディレクトリを表示する

pwd -P で Symbolic link を経由せずにカレントディレクトリを表示することができる。

$ ln -s /User/qiita/here /here
$ cd /here
$ pwd    # リンクを辿らずにリンク元のカレントディレクトリを表示
> /here
$ pwd -L # こちらもリンクを辿らずにリンク元のカレントディレクトリを表示
> /here
$ pwd -P # リンクを辿ってリンク先のカレントディレクトリを表示
> /User/qiita/here
20
19
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
19

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?