Linux のハードリンクとソフトリンクの原理と使用法の分析

Linux のハードリンクとソフトリンクの原理と使用法の分析

Linux システムには、ファイル共有を解決するために使用できるリンク ファイルと呼ばれる種類のファイルがあります。リンクには、ハード リンクとソフト リンクまたはシンボリック リンクの 2 種類があります。

ハードリンクの概念

ハード リンク (リンクとも呼ばれます) は、ファイルの 1 つ以上のファイル名です。

ハード リンクは、インデックス ノードを介して作成されるリンクです。 Linux ファイル システムでは、ディスク パーティションに保存されているファイルの種類に関係なく、inode 番号と呼ばれる番号が割り当てられます。

ファイルまたはディレクトリの一意の識別子は、インデックスまたは Inode と呼ばれます。ファイルの実際のデータはデータ領域 (データ ブロック) に配置され、重要なファイル パラメータ情報、つまり、作成時間、変更時間、ファイル サイズ、所有者、ユーザー グループ、読み取りおよび書き込み権限、データ ブロック番号などのメタデータが格納されます。

ハードリンクが確立されると、ソースファイルとリンクファイルは同期され、どちらかのファイルへの変更は変更されます。

リンクを確立するとスペースを節約できます。ファイルをコピーせずにリンク関係を維持するだけで済みます。

ソフトリンクコンセプト

ソフト リンク (シンボリック リンクとも呼ばれます) は、Windows システムのショートカットに似ています。ハード リンクとは異なり、ソフト リンクは通常のファイルですが、データ ブロックの内容が少し特殊です。ファイル ユーザー データ ブロックに格納されている内容は、別のファイルのパス名を指します。この方法を使用すると、ソフト リンクが指すソース ファイル エンティティをすばやく見つけることができます。ファイルまたはディレクトリに対してソフト リンクを作成できます。

ソフトリンク機能:

  • 複雑なパスにあるファイルをユーザー アクセス用の単純なパスにリンクするなど、ファイル管理に便利です。
  • スペースを節約して、スペース不足の問題を解決します。ファイル システムのスペースが不足しているが、ファイル システムの下に新しいディレクトリを作成して大量のファイルを保存する必要がある場合は、より多くのスペースが残っている別のファイル システムのディレクトリをファイル システムにリンクできます。
  • ソフト リンクを削除しても、それが指すファイルには影響しませんが、それが指す元のファイルが削除されると、関連するソフト リンクは無効なリンクになります。

ハードリンクとソフトリンクの本質的な違い

ハード リンクは 2 つのファイル名を持つファイルと考えることができます。ソフト リンクはシステムによって作成される新しいリンク ファイルであり、参照先のファイルを指します。

ハードリンクの制限

  • ソフトリンクはファイルシステムをまたぐことができるが、ハードリンクはできない。
  • ソフトリンクは存在しないファイルにリンクできますが、ハードリンクは
  • ソフトリンクはディレクトリに接続できますが、ハードリンクは接続できません。
  • ソフト リンクはハード リンクの制限を克服します。これを踏まえて、ソフトリンクに重点を置きます。ソフト リンクはシンボリック リンクとも呼ばれ、Windows のショートカットに相当します。

ソフトリンクを作成する

ln -s src_file ln_file

ソフトリンクの削除

rm ln_file

注: ディレクトリのソフトレベリングの場合

rm ln_dirはソフトリンクを削除する

rm ln_dir/ は、ディレクトリ ln_dir 内のファイルを削除します。もちろん、ソース ディレクトリ内のファイルも (同期的に) 削除されます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux のハードリンクとソフトリンクの詳細な紹介
  • Linux ソフトリンクと Linux ハードリンクとは何か
  • Linux のハードリンクとソフトリンクの区別

<<:  Vueはルールを使用してフォームフィールドの検証を実装します

>>:  Centos7環境でMySQL 5.6のインスタンスを複数作成する方法の詳細な説明

推薦する

VMware 仮想マシンのインストール win7 オペレーティング システム チュートリアル ダイアグラム

VMwareaのインストールプロセスは説明しませんが、主にwin7イメージをロードする方法を説明しま...

Nginx 設定場所のマッチング優先順位の簡単な分析

序文Nginx 構成のサーバー ブロック内の場所は、リクエスト URI を一致させるために使用され、...

ウェブページ制作でウェブフォントファイルにベクターアイコンを追加する方法

ご存知のとおり、コンピューターには 2 種類の画像があり、1 つはビットマップ、もう 1 つはベクタ...

::before/:before と ::after/:after の使用に関する深い理解

パート1: 基礎1. :active や :hover などの疑似クラスとは異なり、これらはすべて疑...

Mysql 8.0.18 ハッシュ結合テスト (推奨)

ハッシュ結合ハッシュ結合は実行にインデックスを必要とせず、ほとんどの場合、現在のブロックネストループ...

Vueでjsonpを使用する方法

目次1. はじめに2. インストール3. 使用4. vueファイルの使用1. はじめに最近、手書き入...

W3C チュートリアル (4): W3C XHTML アクティビティ

HTML は、World Wide Web 上で公開するために使用されるハイブリッド言語です。 XH...

MySQL 8 の新機能: 非表示のインデックス

背景インデックスは諸刃の剣です。クエリ速度は向上しますが、DML 操作も遅くなります。結局のところ、...

JS関数の呼び出し、適用、バインドの超詳細な方法

目次JS 関数呼び出し、適用、バインドメソッド1. call() メソッド1. call() メソッ...

よく使われる Docker コマンドと例の概要と分析

目次1. コンテナライフサイクル管理(1)ドッカー実行(2)スタート/ストップ/リスタート(3)ドッ...

Linuxプロセス通信におけるFIFOの実装

FIFO通信(先入れ先出し)関連のないプロセス間の通信を可能にする FIFO 名前付きパイプ。パイプ...

VMWare 仮想マシン 15.X LAN ネットワーク構成チュートリアル図

最近、分散型およびビッグデータ技術について学ぶために、いくつかの仮想マシンに取り組んでいます。まず、...

MySQLデータベースの圧縮バージョンのインストールと設定に関する詳細なチュートリアル

目次1. MySQLをダウンロードする2. 圧縮パッケージを解凍する3. MySQLを初期化する4....

Maven+Tomcat 基本イメージを構築する Docker の実装

序文Javaプログラミングでは、ほとんどのアプリケーションはMavenに基づいて構築されており、配信...