ウェブサイト検索

Linux でハードリンクとシンボリックリンクを作成する方法


Linux などの Unix 系オペレーティング システムでは、「すべてがファイル」であり、ファイルは基本的に i ノード (名前と実際の内容以外のファイルに関するすべてを保存するデータ構造) へのリンクです。

ハード リンクは、別のファイルと同じ基礎となる i ノードを指すファイルです。ファイルを 1 つ削除すると、基になる i ノードへのリンクが 1 つ削除されます。一方、シンボリック リンク (ソフト リンクとも呼ばれる) は、ファイル システム内の別のファイル名へのリンクです。

こちらもお読みください: ファイルとディレクトリの管理を実行する方法

2 つのタイプのリンクのもう 1 つの重要な違いは、ハード リンクは同じファイル システム内でのみ機能するのに対し、シンボリック リンクは異なるファイル システム間で動作できることです。

Linux でハードリンクを作成する方法

Linux でハード リンクを作成するには、ln ユーティリティを使用します。たとえば、次のコマンドは、ファイル topprocs.sh への tp という名前のハード リンクを作成します。

ls -l
ln topprocs.sh tp
ls -l

ls コマンドを使用して上記の出力を見ると、新しいファイルはリンクとして示されず、通常のファイルとして表示されます。これは、tp が、topprocs.sh と同じ基礎となる i ノードを指す、単なる別の通常の実行可能ファイルであることを意味します。

ハード リンクを直接ソフト リンクにするには、次のように -P フラグを使用します。

ln -P topprocs.sh tp

Linux でシンボリック リンクを作成する方法

Linux でシンボリック リンクを作成するには、同じln ユーティリティ-s スイッチとともに使用します。たとえば、次のコマンドは、ファイル topprocs.sh への topps.sh という名前のシンボリック リンクを作成します。

ln -s ~/bin/topprocs.sh topps.sh
ls -l topps.sh

上記の出力から、ファイルのアクセス許可セクションから、topps.shl: で示されるリンクであり、別のファイル名へのリンクであることがわかります。

シンボリック リンクが既に存在する場合、エラーが発生する可能性があります。操作を強制するには (既存のシンボリック リンクを削除するには)、-f オプションを使用します。

ln -s ~/bin/topprocs.sh topps.sh
ln -sf ~/bin/topprocs.sh topps.sh

詳細モードを有効にするには、-v フラグを追加して、リンクされた各ファイルの名前を出力に表示します。

ln -sfv ~/bin/topprocs.sh topps.sh
$ls -l topps.sh

それでおしまい!次の関連記事をぜひチェックしてください。

  1. fdupes – Linux で重複ファイルを検索して削除するコマンドライン ツール
  2. Linux でファイルの種類とシステム時間を管理するための 5 つの便利なコマンド

この記事では、Linux でハード リンクとシンボリック リンクを作成する方法を学びました。以下のフィードバック フォームから、このガイドについて質問したり、ご意見を共有したりできます。