Linux lnコマンド徹底解説 – Linuxでシンボリックリンクを作成する方法【Bashコマンド例】
シンボリックリンク(symlink)とは、Linux上で他のファイルやディレクトリ(フォルダ)を指し示すファイルの一種です。
シンボリックリンクは、コマンドラインで ln コマンドを使用することで簡単に作成できます。
シンボリックリンクは、ファイルやディレクトリへのショートカットとして機能するため、日々の作業で非常に役立ちます。
この記事では、ln コマンドを使ってファイルやディレクトリへのシンボリックリンクを作成する方法を、具体例とともに解説します。
Linuxにおけるソフトリンクとハードリンクの違いとは?
ソフトリンク(シンボリックリンク)は、システム上の元ファイルを指し示します。一方、ハードリンクはファイルのコピーを作成します。
ソフトリンクは異なるファイルシステム上のファイルやディレクトリも参照できますが、ハードリンクではそれができません。
ファイルへのシンボリックリンクを作成する方法
コマンドラインには、Macなら「ターミナル」アプリ、Windowsなら「コマンドプロンプト」からアクセスできます。
ターミナルでファイルへのシンボリックリンクを作成する際の基本構文は以下の通りです。
ln -s existing_source_file optional_symbolic_link
ln コマンドでファイルのリンクを作成し、-s オプションで「シンボリックリンクであること」を指定します。-s オプションを省略すると、代わりにハードリンクが作成されるので注意してください。
existing_source_file は、シンボリックリンクを作成したい対象のファイルを表します。
optional_symbolic_link パラメータは、作成するシンボリックリンクの名前です。省略した場合、現在いるディレクトリにシステムが自動的に新しいリンクを作成します。
実際の動作を理解するために、具体例を見てみましょう。
デスクトップに example_fcc_file.txt というファイルがあります。

まずターミナルを開き、デスクトップディレクトリに移動します。cd Desktop コマンドを実行してデスクトップへ移動しましょう。
コマンド実行後、カレントディレクトリがデスクトップに変わったことを確認できます。
jessicawilkins@Dedrias-MacBook-Pro-2 ~ % cd Desktop
jessicawilkins@Dedrias-MacBook-Pro-2 Desktop % 続いて、ln コマンドを使って fcc_link.txt という新しいシンボリックリンクを作成します。
ln -s example_fcc_file.txt fcc_link.txtこのコマンドをターミナルで実行しても、何も表示されないことに気づくでしょう。これは ln コマンドが正常に完了すると出力を行わず、終了ステータス0を返す仕様だからです。
jessicawilkins@Dedrias-MacBook-Pro-2 Desktop % ln -s example_fcc_file.txt fcc_link.txt
jessicawilkins@Dedrias-MacBook-Pro-2 Desktop % シンボリックリンクが正しく作成されたかどうかを確認するには、ls コマンドを使用します。ls コマンドはファイル情報を一覧表示するもので、-l フラグを付けるとシンボリックリンクの詳細を確認できます。
ls -l fcc_link.txtこのコマンドを実行すると、ターミナルに次のような結果が表示されます。
lrwxr-xr-x 1 jessicawilkins staff 20 Feb 19 19:56 fcc_link.txt -> example_fcc_file.txt
出力の fcc_link.txt -> example_fcc_file.txt の部分が、シンボリックリンクが example_fcc_file.txt というファイルを指していることを示しています。
また、新しいシンボリックリンクがディレクトリ内に表示されていることも確認できます。

ディレクトリへのシンボリックリンクを作成する方法
次の例では、ホームディレクトリにある「ミュージック」フォルダを指す my_music というシンボリックリンクを作成します。
まず、ホームディレクトリにいることを確認してください。コマンドラインで cd を実行すれば、いつでもホームディレクトリに戻ることができます。
jessicawilkins@Dedrias-MacBook-Pro-2 Desktop % cd
jessicawilkins@Dedrias-MacBook-Pro-2 ~ % その後、ln コマンドを使ってMusicディレクトリへのシンボリックリンクを作成します。
ln -s /Users/jessicawilkins/Music ~/my_music
成功していれば、ホームディレクトリにリンクが表示されているはずです。

シンボリックリンクを削除する方法
シンボリックリンクを削除するには、unlink または rm コマンドのいずれかを使用します。
先ほど作成した fcc_link.txt シンボリックリンクを削除したい場合は、以下のどちらのコマンドでも削除できます。
rm fcc_link.txtunlink fcc_link.txtこれで、ディレクトリからシンボリックリンクが削除されたことが確認できます。

シンボリックリンクを上書きする方法
同じ名前の fcc_link.txt シンボリックリンクを新しく作成しようとすると、その名前がすでに使われていて別のファイルを指しているため、エラーが発生します。
ln: fcc_link.txt: File exists
このような場合は、強制(-f)オプションを使用することで、既存のリンクを上書きできます。
ln -sf example_fcc_file.txt fcc_link.txtlnコマンドについてさらに学ぶには
ln コマンドについてさらに詳しく知りたい場合は、man ページ(Linuxコマンドの公式マニュアル)を読んでみましょう。
ターミナルで man ln を実行すると、ln コマンドのmanページが表示されます。
LN(1) BSD General Commands Manual LN(1)
NAME
link, ln -- make links
SYNOPSIS
ln [-Ffhinsv] source_file [target_file]
ln [-Ffhinsv] source_file ... target_dir
link source_file target_file
DESCRIPTION
The ln utility creates a new directory entry (linked file) which has the same modes as the original file. It is
useful for maintaining multiple copies of a file in many places at once without using up storage for the
``copies''; instead, a link ``points'' to the original copy. There are two types of links; hard links and sym-
bolic links. How a link ``points'' to a file is one of the differences between a hard and symbolic link.
The options are as follows:
-F If the target file already exists and is a directory, then remove it so that the link may occur. The -F
option should be used with either -f or -i options. If none is specified, -f is implied. The -F option
is a no-op unless -s option is specified.
-h If the target_file or target_dir is a symbolic link, do not follow it. This is most useful with the -f
option, to replace a symlink which may point to a directory.
-f If the target file already exists, then unlink it so that the link may occur. (The -f option overridesまとめ
シンボリックリンクとは、Linux上で他のファイルやディレクトリ(フォルダ)を指し示すファイルの一種です。コマンドラインで ln コマンドを使用することで作成できます。
シンボリックリンクは、ファイルやディレクトリへのショートカットとして機能するため、とても便利な仕組みです。
ターミナルでファイルへのシンボリックリンクを作成する基本構文はこちらです。
ln -s existing_source_file optional_symbolic_linkターミナルでディレクトリへのシンボリックリンクを作成する基本構文はこちらです。
ln -s path_to_existing_directory name_of_symbolic_link
シンボリックリンクを削除するには、unlink または rm コマンドを使用します。
rm name_of_symbolic_linkunlink name_of_symbolic_link既存のシンボリックリンクを上書きして再作成したい場合は、次のコマンドを使用します。
ln -sf path_to_existing_directory name_of_symbolic_linkシンボリックリンクに関するこの記事が皆さんのお役に立てば幸いです。プログラミング学習の旅が実り多きものとなりますように。
-
Windows 10にBash(Linuxシェル)をインストールして使う方法【WSL完全ガイド】
Windows上でLinuxシェルをセットアップして使う方法を、Windows Subsystem for Linux(WSL)を使って解説します。 このチュートリアルは、2020年以降にリリースされた最新版のWindows 10を対象としています。古いバージョンのWindows 10でのWSLの使い方や、Windows 8/7/XP向けの別の方法については扱いません。サポートが終了したソフトウェアの使用は避けるべきだからです。どうしてもWindowsを使わなければならない場合は、必ずセキュリティ更新プログラムが提供されているバージョンを使用してください。 WSLは非常に優れたツールで、まるで
-
Linuxのwatchコマンドの使い方と実用例をわかりやすく解説
Linuxのwatchコマンドは、指定したコマンドを一定間隔で繰り返し実行し、その結果を画面に表示し続けるためのツールです。コマンドの出力が時間とともにどう変化するかをリアルタイムで監視したい場合に非常に便利です。この記事では、watchコマンドの基本的な使い方と、覚えておくと役立つ実用的な例を紹介します。 watchコマンドの基本構文 watchコマンドの構文は以下のとおりです。 watch オプション コマンド 各要素の意味は次のとおりです。 オプション: 後述の表から選択したオプションを指定します。watchコマンドのデフォルト動作を変更できます。 コマンド: watchが繰り返し実行