言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

  1. トップページ
  2. Bash辞典
  3. ln

ln

『ln』はファイルへのリンクを作成するコマンドです。同じファイルに複数の名前をつける「ハードリンク」と、別のパスへの参照を作る「シンボリックリンク(ソフトリンク)」の2種類があります。

構文

ln [オプション] リンク元 リンク名

オプション一覧

オプション概要
ln リンク元 リンク名ハードリンクを作成します。同じファイルシステム内のファイルのみ対象です。
ln -s リンク元 リンク名シンボリックリンクを作成します。ディレクトリや別ファイルシステムも対象にできます。
ln -f リンク元 リンク名リンク名がすでに存在する場合は強制的に上書きします。
ln -n リンク元 リンク名リンク名がシンボリックリンクである場合、その先をたどらずに置き換えます。
ln -v リンク元 リンク名作成したリンクの情報を表示します(verbose)。

サンプルコード

以下のディレクトリ構造を例に説明します。

📁 ~/project/ 📁 config/ 📄 settings.conf 📄 original.txt

ファイルへのシンボリックリンクを作成します。

ln -s original.txt link.txt
ls -l link.txt
lrwxrwxrwx 1 user staff 12 Mar  5 10:00 link.txt -> original.txt

ディレクトリへのシンボリックリンクを作成します。

ln -s /var/www/html /home/user/www
ls -l /home/user/www
lrwxrwxrwx 1 user staff 13 Mar  5 10:00 /home/user/www -> /var/www/html

パスの通った場所にシンボリックリンクを作り、コマンドをどこからでも実行できるようにします。

ln -s /usr/local/bin/node /usr/bin/node

ハードリンクを作成します。同じ inode 番号になるため、どちらのファイル名からでも同じデータにアクセスできます。

ln original.txt hardlink.txt
ls -i original.txt hardlink.txt
123456 hardlink.txt
123456 original.txt

既存のリンクを強制的に上書きします。

ln -sf config/settings.conf link.txt
ls -l link.txt
lrwxrwxrwx 1 user staff 21 Mar  5 10:05 link.txt -> config/settings.conf

概要

シンボリックリンクはリンク元ファイルが削除されると「壊れたリンク(dangling symlink)」になります。一方ハードリンクはリンク元を削除してもデータが残ります(参照カウントが0になるまで実体は消えません)。

シンボリックリンクはディレクトリにも作成できますが、ハードリンクはディレクトリには作れません(通常のユーザーの場合)。ファイルのパーミッション変更は『chmod / chown / chgrp』を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。