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.sh
は l:
で示されるリンクであり、別のファイル名へのリンクであることがわかります。
シンボリック リンクが既に存在する場合、エラーが発生する可能性があります。操作を強制するには (既存のシンボリック リンクを削除するには)、-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
それでおしまい!次の関連記事をぜひチェックしてください。
- fdupes – Linux で重複ファイルを検索して削除するコマンドライン ツール
- Linux でファイルの種類とシステム時間を管理するための 5 つの便利なコマンド
この記事では、Linux でハード リンクとシンボリック リンクを作成する方法を学びました。以下のフィードバック フォームから、このガイドについて質問したり、ご意見を共有したりできます。