Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

Linux lnコマンド徹底解説 – Linuxでシンボリックリンクを作成する方法【Bashコマンド例】

シンボリックリンク(symlink)とは、Linux上で他のファイルやディレクトリ(フォルダ)を指し示すファイルの一種です。

シンボリックリンクは、コマンドラインで ln コマンドを使用することで簡単に作成できます。

シンボリックリンクは、ファイルやディレクトリへのショートカットとして機能するため、日々の作業で非常に役立ちます。

この記事では、ln コマンドを使ってファイルやディレクトリへのシンボリックリンクを作成する方法を、具体例とともに解説します。

ソフトリンク(シンボリックリンク)は、システム上の元ファイルを指し示します。一方、ハードリンクはファイルのコピーを作成します。

ソフトリンクは異なるファイルシステム上のファイルやディレクトリも参照できますが、ハードリンクではそれができません。

コマンドラインには、Macなら「ターミナル」アプリ、Windowsなら「コマンドプロンプト」からアクセスできます。

ターミナルでファイルへのシンボリックリンクを作成する際の基本構文は以下の通りです。

ln -s existing_source_file optional_symbolic_link

ln コマンドでファイルのリンクを作成し、-s オプションで「シンボリックリンクであること」を指定します。-s オプションを省略すると、代わりにハードリンクが作成されるので注意してください。

existing_source_file は、シンボリックリンクを作成したい対象のファイルを表します。

optional_symbolic_link パラメータは、作成するシンボリックリンクの名前です。省略した場合、現在いるディレクトリにシステムが自動的に新しいリンクを作成します。

実際の動作を理解するために、具体例を見てみましょう。

デスクトップに example_fcc_file.txt というファイルがあります。

Linux lnコマンド徹底解説 – Linuxでシンボリックリンクを作成する方法【Bashコマンド例】

まずターミナルを開き、デスクトップディレクトリに移動します。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 というファイルを指していることを示しています。

また、新しいシンボリックリンクがディレクトリ内に表示されていることも確認できます。

Linux lnコマンド徹底解説 – Linuxでシンボリックリンクを作成する方法【Bashコマンド例】

次の例では、ホームディレクトリにある「ミュージック」フォルダを指す my_music というシンボリックリンクを作成します。

まず、ホームディレクトリにいることを確認してください。コマンドラインで cd を実行すれば、いつでもホームディレクトリに戻ることができます。

jessicawilkins@Dedrias-MacBook-Pro-2 Desktop % cd
jessicawilkins@Dedrias-MacBook-Pro-2 ~ % 

その後、ln コマンドを使ってMusicディレクトリへのシンボリックリンクを作成します。

ln -s /Users/jessicawilkins/Music ~/my_music

成功していれば、ホームディレクトリにリンクが表示されているはずです。

Linux lnコマンド徹底解説 – Linuxでシンボリックリンクを作成する方法【Bashコマンド例】

シンボリックリンクを削除するには、unlink または rm コマンドのいずれかを使用します。

先ほど作成した fcc_link.txt シンボリックリンクを削除したい場合は、以下のどちらのコマンドでも削除できます。

rm fcc_link.txt
unlink fcc_link.txt

これで、ディレクトリからシンボリックリンクが削除されたことが確認できます。

Linux lnコマンド徹底解説 – Linuxでシンボリックリンクを作成する方法【Bashコマンド例】

同じ名前の fcc_link.txt シンボリックリンクを新しく作成しようとすると、その名前がすでに使われていて別のファイルを指しているため、エラーが発生します。

ln: fcc_link.txt: File exists

このような場合は、強制(-f)オプションを使用することで、既存のリンクを上書きできます。

ln -sf example_fcc_file.txt fcc_link.txt

lnコマンドについてさらに学ぶには

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_link
unlink name_of_symbolic_link

既存のシンボリックリンクを上書きして再作成したい場合は、次のコマンドを使用します。

ln -sf path_to_existing_directory name_of_symbolic_link

シンボリックリンクに関するこの記事が皆さんのお役に立てば幸いです。プログラミング学習の旅が実り多きものとなりますように。

  1. Windows 10にBash(Linuxシェル)をインストールして使う方法【WSL完全ガイド】

    Windows上でLinuxシェルをセットアップして使う方法を、Windows Subsystem for Linux(WSL)を使って解説します。 このチュートリアルは、2020年以降にリリースされた最新版のWindows 10を対象としています。古いバージョンのWindows 10でのWSLの使い方や、Windows 8/7/XP向けの別の方法については扱いません。サポートが終了したソフトウェアの使用は避けるべきだからです。どうしてもWindowsを使わなければならない場合は、必ずセキュリティ更新プログラムが提供されているバージョンを使用してください。 WSLは非常に優れたツールで、まるで

  2. Linuxのwatchコマンドの使い方と実用例をわかりやすく解説

    Linuxのwatchコマンドは、指定したコマンドを一定間隔で繰り返し実行し、その結果を画面に表示し続けるためのツールです。コマンドの出力が時間とともにどう変化するかをリアルタイムで監視したい場合に非常に便利です。この記事では、watchコマンドの基本的な使い方と、覚えておくと役立つ実用的な例を紹介します。 watchコマンドの基本構文 watchコマンドの構文は以下のとおりです。 watch オプション コマンド 各要素の意味は次のとおりです。 オプション: 後述の表から選択したオプションを指定します。watchコマンドのデフォルト動作を変更できます。 コマンド: watchが繰り返し実行