GNU/Linux >> Linux の 問題 >  >> Linux

ハードリンクとソフトリンクを作成する–RHCSA試験の準備

RHCSA試験準備のこの部分では、リンクに注意を向けます。リンクには、ハードリンクとソフトリンクの2種類があります。この記事では、リンクを作成および削除する方法について説明し、ハードリンクとソフトリンクの両方の背後にある基本的な背景についても説明します。

このチュートリアルでは、次のことを学びます。

  • シンボリック(ソフト)リンクとは
  • ハードリンクとは
  • シンボリックリンクを作成する方法
  • ハードリンクを作成する方法
  • リンクを削除する方法

lnのマニュアルページ コマンド

使用されるソフトウェア要件と規則

システム ソフトウェア その他 規約
ソフトウェア要件とLinuxコマンドラインの規則
カテゴリ 使用する要件、規則、またはソフトウェアバージョン
Red Hat EnterpriseLinux8またはその他のGNU/Linuxディストリビューション
N / A
rootまたはsudoを介したLinuxシステムへの特権アクセス コマンド。
–指定されたLinuxコマンドは、rootユーザーとして直接、またはsudoを使用して、root権限で実行する必要があります。 コマンド
$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります

GNU/Linuxシステムのリンクとは

すべてのファイルには、作成、変更、アクセス、ファイルの所有権、およびそのアクセス許可に関する情報が、いわゆるiノードに格納されています。 。すでに説明した保存されたメタデータに加えて、iノード また、ファイルの実際のコンテンツがファイルシステムに保存されているデータブロックに関する情報も保存します。

したがって、iノードの主な機能 ファイルやディレクトリなどのファイルシステムオブジェクトを記述することです。特定のinodeに関連付けられたファイルシステムオブジェクトにアクセスするため ユーザーにハードリンクを提供する必要があります これは実際のファイル名またはディレクトリ名です。

これは、ハードリンクである最初のタイプのリンクを説明しています 。 GNU / Linuxオペレーティングシステムの2番目のタイプのリンクは、シンボリックリンクです。 別名ソフトリンク。ハードリンクとシンボリックリンクの違いは、シンボリックリンクはハードリンクのみを指す、つまり、既存のファイル名またはディレクトリ名を指すことです。簡単に言うと、リンクを使用すると、ユーザーは複数の名前でファイルやディレクトリにアクセスできます。

ハードリンク

ハードリンク以降 iノードに関連付けられています これはファイルシステム機能であり、ハードリンクはファイルシステムを横断できないため、同じファイルシステム内でのみ有効です。さらに、ディレクトリにハードリンクを作成することはできません。ディレクトリからハードリンクを作成しようとすると、hard link not allowed for directoryになります。 エラーメッセージ。

いくつかのハードリンクを作成しましょう。この例では、最初にsandboxという任意のファイルを作成します。 テキストlinuxconfig.orgを含む 。準備ができたら、複数のハードリンクを作成します さまざまな場所を指すこのファイルに移動します。

  1. sandboxというファイルを作成します テキストRHCSAを含む ユーザーのホームディレクトリ内~/
    $ echo "RHCSA" > ~/sandbox
    

    catを使用してファイルの内容を確認します コマンド:

    $ cat ~/sandbox
    RHCSA
    
  2. ユーザーのホームディレクトリ内にある場合でも、sandboxへのハードリンクを作成します /tmp/からのファイル hardlink1というディレクトリ 。
    $ ln sandbox /tmp/hardlink1
    

    次に、新しく作成されたハードリンク/tmp/hardlink1の内容を確認します。 。 /tmp/hardlink1のコンテンツ および元のsandbox ファイルは同じである必要があります:

    $ cat /tmp/hardlink1
    RHCSA
    
  3. 両方のファイル名に関連付けられているリンク情報を確認してくださいsandbox および/tmp/hardlink1
    $ ls -l /tmp/hardlink1
    -rw-rw-r--. 2 linuxconfig linuxconfig 6 Jul 25 10:20 /tmp/hardlink1
    $ ls -l ~/sandbox
    -rw-rw-r--. 2 linuxconfig linuxconfig 6 Jul 25 10:20 /home/linuxconfig/sandbox
    

    関連する番号2に注意してください 上記の出力で示されているように。この数は、特定のiノードに関連付けられているハードリンクの数を示します。

    <中央>
    この段階では、元のsandboxの間に実際の違いはないことを理解することが重要です。 新しく作成された/tmp/hardlink1 ファイル。どちらも同じiノードを指しています 異なるファイル名を使用します。
  4. unlinkを使用してハードリンクを削除します またはrm 指図。
  5. $ unlink sandbox 
    $ ls -l /tmp/hardlink1 
    -rw-rw-r--. 1 linuxconfig linuxconfig 6 Jul 25 10:20 /tmp/hardlink1
    

    この場合、両方のrm またはunlink コマンドはハードリンクを削除しますが、実際の関連データとiノードは削除しません。 sandbox以降 ハードリンクが削除されました1のみがあります 元のiノードに関連付けられたままのハードリンク。次に、このファイルに関連付けられている最後のハードリンクを削除します:

    $ rm /tmp/hardlink1
    

    この時点で、元のファイルのコンテンツを指すiノードへのリンクが失われるため、このファイルは削除されたと見なされます。 iノードを指すハードリンクがない場合、ファイルシステムはこのiノードの場所を新しいデータで上書きする可能性があります。

ご存知ですか?
unlinkコマンドを使用して、(適切な権限がある場合)任意のファイルを削除できますか?今すぐお試しください:

$ touch file
$ unlink file

上記のコマンドを理解している場合は、このチュートリアルで説明されているように、GNU/Linuxハードリンクをマスターしています。

シンボリックリンク

ハードリンクに加えて、GNU/Linuxオペレーティングシステムで利用可能なさまざまなタイプのリンクもあります。 シンボリックリンク ファイルシステムをまたがることができ、シンボリックリンクを作成することもできます。 ディレクトリの。ただし、実際のiノードではなくシンボリックリンク 、既存のハードリンク(ファイルまたはディレクトリ名)にのみリンクします。このため、シンボリックリンクが指している実際のハードリンクを削除すると、シンボリックリンクが切断されます。

  1. まず、遊ぶサンドボックスオブジェクトをいくつか作成しましょう。この場合、mydirというディレクトリを作成します。 このディレクトリ内に、myfileというファイルを作成します。 。
    $ mkdir mydir
    $ touch mydir/myfile
    
  2. 次に、既存のディレクトリの新しいシンボリックリンクを作成します mydir lnを使用する -sを組み合わせたコマンド オプション。
    $ ln -s ~/mydir /tmp/symdir
    

    これで、symdirというシンボリックリンクが作成されました。 /tmp内にあります ディレクトリ。

    $ cd /tmp/
    $ ls -l symdir
    lrwxrwxrwx. 1 linuxconfig linuxconfig 23 Jul 25 14:05 symdir -> /home/linuxconfig/mydir
    

    上記の出力の最初の文字に注意してください。この場合、文字l シンボリックリンクを扱っていることを示します。

    <中央>
    シンボリックリンクを作成するときは、lnに注意してください。 コマンドは、文字列として提供された実際のパスを格納します。同じディレクトリを使用しない場合、多くの場合、シンボリックリンクが機能するために注文するためのフルパスを指定する必要があります

    新しく作成されたsymdir 以前に作成されたファイルmyfileが含まれている必要があります :

    $ cd symdir
    $ ls
    myfile
    $pwd 
    /tmp/symdir
    

演習

  1. シンボリックリンクで遊んでください。ファイルへのシンボリックリンクを作成した後、元のファイルを削除して、シンボリックリンクで何が起こったかを確認します。
  2. lsを実行するとどうなりますか 引数が1つだけのコマンド。たとえば、次のコマンドを実行しますln -s /etc/services 。何が起こったのですか?
  3. ファイルへのシンボリックリンクを作成するためにファイルを所有する必要があるかどうかを判断します。同じルールがハードリンクにも適用されますか?

Linux
  1. Linuxでハードリンクとシンボリックリンクを作成する方法

  2. Linuxでソフトリンクとハードリンクを作成する方法

  3. RHEL 7 – RHCSA 注:ハード リンクとソフト リンクを作成します。

  1. Linuxのハードリンクとソフトリンクの説明

  2. Ulimit:ハード制限とソフト制限の違いは?

  3. シンボリック リンク (ソフト リンク) とは何か、および Linux でそれらを作成する方法

  1. シンボリックリンクとハードリンクの違いは?

  2. Linux ファイル システムのソフト リンクとハード リンクとは

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