Linux自習の旅-基本的なコマンド(ハードリンクとソフトリンク)

Linux自習の旅-基本的なコマンド(ハードリンクとソフトリンク)


序文

1.前のセクションでは、コマンドについては説明しませんでしたが、Ext4ファイルシステムについての簡単な知識と、iノードとブロックについての簡単な知識について説明しました。まだ読んでいない場合は、以下のリンクをクリックしてください。入力するには:Ext4ファイルシステム

2.このセクションでコマンドについて急いで話さないでください。理論的な知識を理解し続けましょう。このセクションでは、ハードリンクとソフトリンクについて説明します。ハードリンクとソフトリンク(ハードリンク)についても触れたことを覚えています。 )。ソフトリンクの基本的な知識)が、ハードリンクとソフトリンクのいくつかの基本的な概念について簡単に説明しました。このセクションでは、ハードリンクとソフトリンクの特徴と機能および違いを詳しく見ていきましょう。


ヒント:以下はこの記事の内容です

1つ、ハードリンク

まず第一に、誰もが私たちのハードリンクのいくつかの基本的な概念をまだ覚えています、それは{ 1.ソースファイルとハードリンクファイルのiノードはブロック2と同じです。ソースファイルとハードリンクファイルは同期して更新され、削除されますそのうちの1つ。もう1つは引き続き使用できます... } 1。では、作成されたハードリンクとソースファイルの違いを見てみましょう。




[[email protected] ceshi]# 
[[email protected] ceshi]# ln /tmp/ceshi/y /tmp/ceshi/y.test
[[email protected] ceshi]# ls -lhi
总用量 0
148133 -rw-r--r--. 2 root root 0 1月  18 09:24 y
148133 -rw-r--r--. 2 root root 0 1月  18 09:24 y.test
[[email protected] ceshi]#

(我将硬链接创建在了本目录下,并用“ls -lhi”的形式查看当前目录下的所有非
隐藏文件的长格式信息还显示了他们的inode信息)
(这时候我们发现y.test这个硬链接文件和源文件长得一模一样,连Inode都一模一样,
那么这时候问题来了,如果他们的Inode都一模一样,那么我们找文件的时候,怎么
知道系统应该找哪个文件呢?)

*148133就是Inode

2. iノードがファイル名を保存しないことはわかっています。ファイル名は現在のディレクトリのブロックに保存されます。現在のディレクトリのブロックを介して、ファイルの名前を検索し、対応するiノードを名前で検索できます。最後に、iノード
のガイダンスにより、ファイルの元のデータブロックが見つかりました。つまり、ディレクトリのブロックはディレクトリ内のすべてのファイルとディレクトリの名前とiノードを保存しますが、ファイルのブロックは元のデータをファイルに保存します

3.ファイル" / tmp / ceshi / y "を検索する場合、手順は次のようになります。
{

3.1。最初にルートディレクトリのiノードを見つけ(「/」ディレクトリのiノード番号はシステムによって認識され、デフォルトは2です)、次にユーザーがルートディレクトリのブロックにアクセスする権限を持っているかどうかを判断します。権限がある場合は、ルートディレクトリのBlcokを渡します。/tmpのディレクトリ名とiノード番号を見つけます。

3.2。の/ tmpのiノード番号を通じて、我々はの/ tmpのiノード情報を検索し、ユーザーがの/ tmpのブロックにアクセスする権限を持っているかどうかを判断できそうならば、私たちは/のディレクトリ名とiノードを知ることができます/ tmp番号のブロックを介したtmp / ceshi

3.3。を/ tmp / ceshiのiノード番号を通じて、我々はを/ tmp / ceshiのiノード情報を検索し、ユーザーは、/ tmpに/ ceshiのブロックにアクセスする権限を持っているかどうかを判断し、もしそうなら、私たちは何を見つけることができますすることができます/ tmp / ceshiのブロックを通過したいファイル名yとそのiノード番号

3.4。を/ tmp / ceshi / Yのiノード番号を通じて、我々は、/ tmpに/ ceshi / Yのiノード情報を検索し、ユーザーがファイルYのブロックにアクセスする権限を持っているかどうかを判断し、ブロックの場合はすることができますyはファイルを知っていますy生データ

}

4.したがって、誰もがほぼここで理解する必要があります。ハードリンクとソフトリンクのiノードは同じです。元のファイルのiノードが100であるとすると、作成したハードリンクのiノードも100である必要があります。次に、どのファイルにアクセスしますか。実際にはファイルInode = 100です。
したがって、これがハードリンクの原則です。{

4.1:ソースファイル(y)を変更すると、ハードリンクファイル(y.test)も一緒に変更されます

4.2:どのファイルを削除しても、iノード= 100の別のファイルがまだ存在する場合は、そのファイルがまだ存在していることを意味します。両方を削除しない限り、ファイルは削除されたと見なされます。

4.3:ハードリンクは新しいiノードを独占しません。これはソースファイルのiノードと同じであり、ブロックも同じです。

4.4:別のファイルシステムのハードリンクには新しいiノードがあるため、ファイルシステム間でハードリンクを作成することはできません

4.5:ハードリンクはディレクトリをリンクできません(もちろん、ディレクトリをリンクする場合は、ディレクトリを再作成するだけでなく、ディレクトリの下にあるすべてのファイルに対してハードリンクを作成する必要があります。これも同様です。面倒)

}

**特定のハードリンクの上記の特性を実験したい場合は、自分で試してみてください。ここでは実験しません(怠惰です、えーと)。ハードリンクは一般的に推奨されていません。これがソフトリンクです。頻繁に使用されます。


2、ソフトリンク

1.ソフトリンクを理解することをお勧めします。ソースファイルにソフトリンクが作成された後の2つのファイル間のギャップを見てみましょう。

[[email protected] ceshi]# ln -s /tmp/ceshi/r /tmp/ceshi/r.test
[[email protected] ceshi]# ls -li
总用量 0
148133 -rw-r--r--. 1 root root  0 1月  18 10:14 r
148134 lrwxrwxrwx. 1 root root 12 1月  18 10:14 r.test -> /tmp/ceshi/r
[[email protected] ceshi]# 

(相比硬链接,我们发现软链接的特征非常明显,首先Inode号不一致,
其次就是软链接后面会接”-> xx“来标识你的源文件在哪。)

--友情提醒一下:创建软链接的话源文件一定要写绝对路径哦亲,要不然会有问题的说

2.ソフトリンクはウィンドウの下のショートカットと見なすことができます。機能は非常に明白であり、ディレクトリやクロスパーティションリンクをリンクすることもできるため、ソフトリンクをよく使用します。


3.ソフトリンクには独自のiノードがあることがわかっていますが、ソフトリンクを見つける方法はハードリンクと同じように機能しますか?実際にはそうではありません。元のデータはソフトリンクブロックに保存されません(つまり、ソースファイルのコンテンツは保存されません)。では、ソフトリンクのブロックは何を保存しますか?実際、ソフトリンクのブロックは、ソースファイルを保存するファイル名とiノードです。


4.では、ソフトリンク "/tmp/ceshi/r.test"
{ を見つけるためのワークフローは何ですか。

4.1。最初にルートディレクトリのiノード情報を見つけてから、ユーザーがルートディレクトリ内のブロックにアクセスする権限を持っているかどうかを判断します(ある場合)。ルート内のブロック内の/ tmpのディレクトリ名とiノード番号を知ることができます。ディレクトリ

4.2。もしあれば我々はの/ tmpのiノード番号を通じての/ tmpのiノード情報を検索し、ユーザーがの/ tmpのブロックにアクセスする権限を持っているかどうかを判断することができ、あなたが/ tmpに/ ceshiのディレクトリを見つけることができます/ tmp名とiノード番号のブロック

4.3。私たちは、のiノード情報を見つけることができますを/ tmp / ceshiを/ tmp / ceshiのiノード番号を通り、その後、ユーザーは/ tmpに/ ceshi、もしあれば、あなたはそれを見つけることができるのブロックにアクセスする権限を持っているかどうかを判断しますceshiディレクトリのブロック/tmp/ceshi/r.testこのファイルの名前とiノード番号

4.4。/tmp/ceshi/r.testのinode番号を通じ、我々はファイルr.testのiノード情報を検索し、ユーザーがアクセスするファイルr.testのブロックを許可を持っているかどうかを判断し、もし可能したがって、r.testブロックを確認すると、ファイルr.testに実際のデータはなく、ソースファイルrのファイル名とiノード番号のみが含まれていることがわかりました。

4.5。次に、r.testによって提供されたrのiノード番号からrのiノード情報を見つけ、ユーザーがrのブロックにアクセスする権限を持っているかどうかを判断できます。そうであれば、実際にのデータを表示できます。 rのソースファイル。

}

5.したがって、ソフトリンクのブロックには元のファイルの実際のデータは格納されず、ソースファイルのファイル名とソースファイルのiノード番号のみが格納されます。次に、ソフトリンクの特性について説明します
{

5.1:ソースファイル(r)を変更すると、ソフトリンクファイル(r.test)も一緒に変更されます(ソフトリンクはソースファイルを指しているため)

5.2:ソフトリンクを削除すると、ソースファイルは引き続き使用できますが、ソースファイルを削除すると、ソフトリンクは無効になります(ソフトリンクはソースファイルデータを参照しないため)

5.3:ソフトリンクには、ソースファイルとは異なる独自のiノードとブロックがあります(ソフトリンクブロックには、ソースファイルのファイル名とiノード番号が格納されます)

5.4:ソフトリンクはディレクトリをリンクできます

5.5:ソフトリンクはファイルシステム間でリンクできます
}

*特定のソフトリンクの特性を自分でテストしてください(私はまだ怠惰です、ええと)。私たち全員がソフトリンクを使用する場合は、さらに使用します。結局のところ、機能は明白であり、ディレクトリやクロスパーティションリンクをリンクすることもできます。


総括する

このセクションでは、課外活動の知識に十分なソフトリンクとハードリンクの詳細な内容について説明しました。以前に教師システムでLinuxを学習していたとき、多くの教師はそれについて話しませんでした。多くの教師が教えられました。一人で、そして深く行きました。理解してください。したがって、自分の先生と一緒にLinuxを体系的に学ぶ場合は、Linux全体をよりよく理解できるように、インターネット上のLinuxに関する他の課外活動の知識をよく見ることをお勧めします。そのため、今回は{ 1.ハードリンク:ソースファイルのiノードとブロックと矛盾して作成されました2.ソフトリンク:ソースファイルのiノードとブロックと矛盾して作成されました}


Jiehuaです。また会いましょう。

おすすめ

転載: blog.csdn.net/qq313088385/article/details/112761509