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のインスタンスを複数作成する方法の詳細な説明

推薦する

Linux で特定のプログラムを見つけるための whereis の例の詳細な説明

Linuxは特定のプログラムを見つけますwhereis コマンドは主にプログラム ファイルを検索し、...

Vue のスロットリング関数使用時の落とし穴ガイド

序文一般的なビジネス シナリオでは、検索ボックスへの入力が完了した後、検索データを取得するために関連...

MySQLの累積集計原理と使用例の分析

この記事では、例を使用して、MySQL 累積集計の原理と使用方法を説明します。ご参考までに、詳細は以...

W3Cチュートリアル(1):W3Cを理解する

1994 年に設立された組織である W3C は、共通プロトコルの開発を促進し、それらの相互運用性を確...

HTML で 2 つの div タグの間に垂直線を描く方法

最近、インターフェースを描画しているときに、インターフェースに垂直線を描画し、この垂直線の高さが親 ...

MySQL count(1)、count(*)、count(field)の違い

目次1. COUNTの初見2. COUNT(フィールド)、COUNT(定数)、COUNT(*)の違い...

Dockerを使用して開発環境を構築する方法を素早く習得します

プラットフォームが成長し続けるにつれて、プロジェクトの研究開発は、開発者向けのさまざまな外部環境、特...

docker を使用して minio と java sdk を構築するプロセスの詳細な説明

目次1minioはシンプル2 Dockerビルド minio 2.1 単一ノード2.2 マルチノード...

MySQL で日付時刻データを取得し、その後に .0 を追加する方法

MySQL のデータ型は datetime です。データベースに保存されているデータは 2015-0...

UbuntuのVimにNERDTreeプラグインをインストールする詳細な手順

NERDTree は Vim 用のファイル システム ブラウザーです。このプラグインを使用すると、ユ...

VMware での Ubuntu 16.04 イメージの完全インストール チュートリアル

この記事では、VMware 12でのUbuntu 16.04イメージのインストールチュートリアルを参...

Vue で動的なスタイルを実現するためのさまざまな方法のまとめ

目次1. 三項演算子の判定2. 動的に設定されるクラス3. 方法判定4. 配列バインディング5. e...

Node.js での SerialPort モジュールの使用

目次目的モジュールのインストール基本的な使い方ポートをスキャンする開いているポートデータの送信データ...

Linux で起動時にプログラムを自動的に実行させる最も簡単な方法

たくさん集めましたが、すべて失敗に終わりました。最終的に、この方法は優れており、使用に影響を与えない...

Nginx ソースコードのコンパイルとインストールのプロセス記録

rpm パッケージのインストールは比較的簡単なので、ここでは説明しません。ほとんどのオープンソース ...