連載
» 2016年05月30日 05時00分 公開

Linux基本コマンドTips(16):【 ln 】コマンド――ファイルのハードリンクとシンボリックリンクを作る

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「ln」コマンドです。

[西村めぐみ,@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、シンボリックリンクを作成するための「ln」コマンドです。

lnコマンドとは?

 「ln」は、ファイルのリンクを作成するためのコマンドです。「ln ファイル名 リンク名」でハードリンクを作成できますが、「-s」オプションを使い、「ln -s ファイル名 リンク名」としてシンボリックリンクを作成する方が一般的です。


lnコマンドの書式

ln [オプション] ファイル名 リンク名

(ファイルのリンク(ハードリンクまたはシンボリックリンク)を作成する)

ln -s ファイル名 リンク名

(ファイルのシンボリックリンクを作成する)

ln -s ディレクトリ名 リンク名

(ディレクトリのシンボリックリンクを作成する)

ln -s ファイル1 ファイル2…… ディレクトリ

(指定したディレクトリの中にシンボリックリンクを作成する)

※[ ]は省略可能な引数を示しています



lnコマンドの主なオプション

 lnコマンドの主なオプションは次の通りです。

短いオプション 長いオプション 意味
-s --symbolic ハードリンクの代わりにシンボリックリンクを作成する
-d,-F --directory ディレクトリのハードリンクを作成する(スーパーユーザーのみ)
-f --force リンクファイルと同じ名前のファイルがあっても強制的に上書きする
-i --interactive 上書き前に確認する
-n --no-dereference リンクの作成場所として指定したディレクトリがシンボリックリンクだった場合、参照先にリンクを作るのではなく、シンボリックリンクそのものを置き換える(-fと組み合わせて使用)
-L --logical 対象がシンボリックリンクの場合リンクを巡る
-P --physical シンボリックリンク自体へのハードリンクを作成する
-r --relative 相対パスのシンボリックリンクを作成する
-T --no-target-directory リンク先を常に通常ファイルとして扱う
-t DIR --target-directory=DIR 指定したディレクトリにリンクを作成する(DIR部分はディレクトリ名)
-b --backup=方法 上書きされるファイルのバックアップを作成する(実行例2を参照)
[方法]:「numbered」または「t」の場合は番号の添え字、「simple」または「never」の場合はファイル名の末尾に「~」または「-S」オプションか環境変数で指定した文字を付けるシンプルなバックアップ(-bと同じ)、「existing」または「nil」の場合は既にあるファイルに従う(ない場合はsimpleと同じ)
-S 接尾辞 --suffix=接尾辞 バックアップファイルを作る際のファイル名末尾に付ける文字(無指定時は「~」1文字、または環境変数「SIMPLE_BACKUP_SUFFIX」に従う)
-v --verbose 経過を表示する


シンボリックリンクを作成する

 「ln -s」で、ファイルの“シンボリックリンク”を作成できます。シンボリックリンクは、いわばファイルの“別名”で、長いファイル名に別の名前を付けたり、パス名の指定が分かりにくい場所にあるファイルを扱いやすくしたりする(例:ディレクトリへのシンボリックリンク)場合に使います。

コマンド実行例

ln -s ファイル名 リンク名

(ファイルのシンボリックリンクを作成する)


 以下の実行例では、ファイル「mylist02.txt」に対し、「latest」という名前のシンボリックリンクを作成しています。この場合、テキストエディタで「latest」というファイルを編集したり、閲覧したりすることは、「mylist02.txt」を編集したり、閲覧したりすることと同じ操作結果になります。

$ ls -l
合計 8
-rw-rw-r--. 1 study study  65  5月 15 00:00 mylist01.txt
-rw-rw-r--. 1 study study 127  5月 17 00:00 mylist02.txt
「mylist01.txt」というファイルと「mylist02.txt」というファイルがある
$ ln -s mylist02.txt latest
「ln -s」で「mylist02.txt」に「latest」という名前のシンボリックリンクを作成する
$ ls -l
合計 8
lrwxrwxrwx. 1 study study  12  5月 18 19:39 latest -> mylist02.txt
-rw-rw-r--. 1 study study  65  5月 15 00:00 mylist01.txt
-rw-rw-r--. 1 study study 127  5月 17 00:00 mylist02.txt
「latest」というシンボリックリンクが作成された


バックアップファイルを作成する

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。