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

推薦する

3Dカルーセル効果を実現するjs

この記事では、3Dカルーセル効果をjsで実装するための具体的なコードを参考までに共有します。具体的な...

プロジェクトのフロントエンドとバックエンドでの Echart チャートの使用に関する詳細な説明

目次序文1. プロジェクトアーキテクチャ2. Echart公式サイトにアクセスして自己分析を学ぶ2....

XHTMLタグには終了タグがある

<br />オリジナルリンク: http://www.dudo.org/article....

WeChat アプレットのカスタム タブバー コンポーネント

この記事では、WeChatアプレットのカスタムタブバーコンポーネントの具体的なコードを参考までに紹介...

VMware ESXi サーバー仮想化クラスター

目次まとめ環境とツールの準備サーバー仮想化のインストール VMware ESXi仮想マシンのオペレー...

ネイティブ JS カプセル化 vue タブ切り替え効果

この記事の例では、ネイティブJSカプセル化vueタブ切り替えの具体的なコードを参考までに共有していま...

Vue ソング プログレス バーのサンプル コード

なお、これはvue-cliで作成したプロジェクトではありません。vue.jsを参照して記述したHTM...

Vueコンポーネント登録方法の解釈

目次概要1. グローバル登録2. 現地登録3. モジュールシステムへのローカル登録概要コンポーネント...

bashコマンドの使い方の詳細な説明

Linux では、基本的に vi エディタのように「.sh」拡張子を持つテキストの処理と実行を記述す...

JavaScript関数におけるこのポイントの問題の詳細な説明

このキーワードどのオブジェクトが関数を呼び出しますか? また、関数内の this はどのオブジェクト...

CSS3 疑似クラスセレクターの簡単なレビュー

序文CSS がフロントエンド開発の基本的なスキルであるならば、「セレクター」は基礎中の基礎です。これ...

MySQL 派生テーブル(Derived Table)の簡単な使用例分析

この記事では、例を使用して、MySQL 派生テーブルの簡単な使用方法を説明します。ご参考までに、詳細...

VirtualBox を使用して Mac 上にローカル仮想マシン環境を構築する方法

1. ビッグデータとHadoopビッグデータについて研究し学ぶには、当然 Hadoop から始める必...

MySQL シリーズ 7 MySQL ストレージ エンジン

1. MyISAM ストレージエンジン欠点:トランザクションはサポートされていません最小粒度ロック:...