もっと詳しく

Linuxでは、ファイルへのリンクは、ほとんどの一般的なプログラミング言語でファイルへの参照が作成されるのと同じ方法で作成されます。 これらのリンクは、ハードリンクとソフトリンクの2つのカテゴリに分類されます。

ハードリンクは事実上ファイルの同一のレプリカであるため、ハードリンクと実際のファイルは両方とも同じiノードを持ちます。

ソフトリンクは、シンボリックリンクとも呼ばれ、ファイルへのショートカットまたはポインタと同様に機能します。 これはファイルの正確なレプリカではなく、元のファイルへのポインタです。

ファイルと実際のファイルへのソフトリンクのiノード値は異なります。 さらに、実際のファイルを削除すると、ソフトリンクの内容にアクセスできなくなります。 この記事では、ソフトリンクとハードリンクについて詳しく学びます。

Linuxのソフトリンクとは何ですか?

Windowsには、ファイルのショートカットを作成するために使用されるファイルショートカット機能があります。 ソフトリンクはファイルのショートカットに似ています。 ソフトリンクされた各ファイルには、元のファイルを参照する独自のiノード値があります。 一方のファイルの情報への変更は、もう一方のファイルに反映されます。 異なるファイルシステム間でソフトリンクを接続することはできますが、ソースファイルが削除または転送されると、ソフトリンクされたファイルは正しく機能しません。 このリンクは、ハングリンクと呼ばれます。 ソフトリンクを削除しても効果はありませんが、元のファイルを削除すると、リンクが機能しなくなる可能性があります。

ソフトリンクを使用してディレクトリを指すことができ、その内容ではなく、元のファイルへのパスを保持するだけです。 ソフトリンクのサイズは、ソフトリンクが形成されているファイルと同じになります。 たとえば、ファイルtheabcd.txtが5KBの場合、このファイルのソフトリンクも5KBになります。

ソフトリンク:

  • ファイルシステムをトラバースする可能性があります。
  • ディレクトリ間で接続できるようにし、
  • 元のファイルとは異なるファイルパーミッションとiノードがあります。
  • 権限は変更されません、
  • 内容ではなく、元のファイルのパスのみが含まれます

Linuxのハードリンクとは何ですか?

Linuxのハードリンクは、ハードドライブに保存されたファイルと同等であり、実際にはハードドライブ上の場所を参照またはリンクしています。 ハードリンクは、基本的に元のファイルの鏡像です。 ハードリンクとソフトリンクの違いは、ソースファイルを削除してもハードリンクには影響しませんが、ソフトリンクが機能しなくなることです。 したがって、ハードリンクを作成することの最も重要な利点は、意図せずにファイルを消去した場合でも、ファイルの内容にアクセスできることです。

ハードリンク:

  • ファイルシステムの境界を越えることはできません、
  • ディレクトリを接続できません、
  • 元のファイルと同じファイルパーミッションとiノード番号があります
  • ソースファイルのアクセス許可を変更すると、ハードリンクのアクセス許可も変更されます
  • 元のファイルのコンテンツが含まれています。元のファイルが破棄された場合でも、コンテンツにアクセスできます。

ソフトリンクとハードリンクの違い

パラメータ ソフトリンク ハードリンク
iノード番号 元のファイルとは異なるiノード番号。 元のファイルと同じiノード番号。
ディレクトリ ソフトリンクはディレクトリをリンクできます ハードリンクはディレクトリをリンクできません。
元のファイルが削除されます 元のファイルのデータにアクセスしないため、元のファイルが削除された場合、リンクは機能しません。 これは、元のファイルへのショートカットにすぎません。 ハードリンクは、元のファイルと同じデータにアクセスするため、元のファイルが削除されても動作し続けます。
スピード ソフトリンクは遅い ハードリンクはソフトリンクよりも高速です。
メモリ消費 もっと 以下

以下のハードリンクファイルとソフトリンクファイルのiノードの違いのスクリーンショットを確認してください。

ソフトリンクとハードリンクのiノードの変更
ソフトリンクとハードリンクのiノードの変更

ハードリンクとソフトリンクを作成するにはどうすればよいですか?

簡単な練習で違いを理解しましょう。 ディレクトリに簡単なテキストファイルを作成し、file1.txtという名前を付けます。 このファイルのソフトリンクとハードリンクを作成します。

ハードリンクの作成:

  1. ハードリンクを作成するには、 「ln」 指図。 したがって、ターミナルウィンドウに次のコマンドを入力します。
    ln file1.txt hardlink.txt 
    
  2. したがって、ここでは「In」コマンドを使用してハードリンクを作成し、次にハードリンクが必要なファイルの名前を指定し、次にハードリンクにhardlink.txtという名前を付けます。

    前のコマンドを実行した後、次のコマンドを入力します。

    ls -l 
    
  3. これにより、ディレクトリにfile1.txtとhardlink.txtの2つのファイルがあることがわかります。 次に、ハードリンクファイルが機能しているかどうかを確認しましょう。 テキストエディタでhardlink.txtファイルを開きます。
    nano hardlink.txt 
    
  4. ファイルの内容を変更して、別の内容を記述してください。 次に、元のファイルを開きます。
    cat file1.txt 
    
  5. ハードリンクファイルで行われた変更が元のファイルに反映されていることがわかります。 次に、元のファイルを削除して、ハードリンクファイルが引き続き機能するかどうかを確認します。
    rm file1.txt 
    
  6. 「ls」コマンドを実行すると、hardlink.txtディレクトリにファイルが1つしかないことがわかります。 ファイルを開くと、ファイルに同じ内容が含まれていることがわかります。

ソフトリンクの作成:

  1. 実例を示すために、agaiは現在のディレクトリにfile.txtを作成しました。 同じためのソフトリンクを作成します。 次のコマンドを実行して、ソフトリンクを作成します。
    ln -s file1.txt softlink.txt 
    
  2. を実行します ls -l コマンドを実行すると、ディレクトリに2つの異なるファイルがあることがわかります。 今、あなたがタイプするなら
    cat softlink.txt 
    
  3. ソフトリンクがこのファイルを指しているため、file1.txtの内容が表示されます。 そして、file1.txtファイルを削除した場合:
    rm file1.txt 
    
  4. もう一度実行します ls -l コマンドを実行すると、エラーが表示されます。 これは、元のファイルが削除され、それがないとソフトリンクが機能しないためです。 そして、次のように入力します。
    cat softlink.txt 
    

    そのようなファイルやディレクトリがないことがわかります

まとめ

ハードリンクは占有するスペースが少なく、動作も速くなりますが、ハードリンクに加えられた変更は元のファイルに反映されます。 ソフトリンクにはより多くのスペースが必要ですが、ソフトリンクを変更しても元のファイルには影響しません。 ハードリンクとは異なり、ディレクトリへのソフト接続は許可されます。

The post Linuxのソフトリンクとハードリンクとは何ですか? – TecAdmin appeared first on Gamingsym Japan.