65)Linuxハードリンクとソフトリンク

1-リンク

ファイル共有方式はPOSIXの概念であり、主流のファイルシステムはすべてリンクファイルをサポートしています。

リンクは、Windows(またはOS Xのアバター)の一般的なショートカットとして単純に理解されています。これは、Linuxでライブラリバージョンの問題を解決するために一般的に使用され、通常、より深いディレクトリレベルのいくつかのファイルをよりアクセスしやすいファイルにリンクします。ディレクトリ内。

2-ソフトリンク:

  1. ソフトリンクはパスの形で存在します。Windowsオペレーティングシステムのショートカットと同様
  2. ソフトリンクはファイルシステムをまたぐことができますが、ハードリンクはできません
  3. ソフトリンクは、存在しないファイル名にリンクできます
  4. ソフトリンクはディレクトリにリンクできます
  5. ファイルユーザーデータブロックに格納されているコンテンツは、別のファイルのパス名です
  6. 独自のファイル属性と権限を持っている。
  7. 存在しないファイルまたはディレクトリへのソフトリンクを作成できます。
  8. ソフトリンクはファイルシステムを越えることができます。
  9. ファイルまたはディレクトリのソフトリンクを作成できます。
  10. ソフトリンクを削除しても、指定されたファイルには影響しませんが、指定された元のファイルが削除された場合、関連するソフトリンクはデッドリンク(ダングリングリンク)と呼ばれます。パスで指定されたファイルが再作成されると、デッドリンクは通常に復元されます。ソフトリンク)。

3-ハードリンク

  1. ファイルのコピーとして存在します。ただし、実際のスペースは占有しません。
  2. ディレクトリへのハードリンクを許可しない
  3. 同じファイルシステムでのみ作成できます
  4. iノード番号が同じでファイル名が異なるファイルは、iノードとデータブロックが同じです。
  5. 作成できるのは既存のファイルのみです。
  6. ファイルシステムを越えてハードリンクを作成することはできません。
  7. ディレクトリは作成できません。作成できるのはファイルのみです。
  8. ハードリンクされたファイルを削除しても、同じiノード番号を持つ他のファイルには影響しません。

4- lnコマンド

その機能は、別の場所にある特定のファイルの同期リンクを確立することです。異なるファイルで同じファイルを使用する必要がある場合、必要な各ディレクトリに同じファイルを配置する必要はありません。 、ファイルを特定のディレクトリに配置し、それを他のディレクトリのlnコマンドとリンクするだけでよく、ディスク領域を繰り返し占有する必要はありません。
コマンド形式:
ln [参数][源文件或目录][目标文件或目录]

コマンドパラメータ:

必要参数:
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
选择参数:
-S “-S<字尾备份字符串> ”或 “--suffix=<字尾备份字符串>”
-V “-V<备份方式>”或“--version-control=<备份方式>”
--help 显示帮助信息
--version 显示版本信息

注:

  • lnコマンドは、リンクされた各ファイルの同期を維持します。つまり、どの場所を変更しても、他のファイルは同じように変更されます。
  • ソフトリンク:ln -s [ソースファイル] [ターゲットファイル]。選択した場所にあるファイルのミラーイメージのみを生成し、ディスク領域を占有しません。
  • ハードリンク:ln [ソースファイル] [ターゲットファイル]、パラメーター-sなしで、選択した場所にソースファイルと同じサイズのファイルを生成します。
  • ln命令は、ファイルまたはディレクトリをリンクするために使用されます。3つ以上のファイルまたはディレクトリが同時に指定され、最終的な宛先が既存のディレクトリである場合、上記で指定されたすべてのファイルまたはディレクトリがディレクトリにコピーされます。複数のファイルまたはディレクトリが同時に指定され、最終的な宛先が存在しないディレクトリである場合。

5- inode

Linuxでは、iノード構造はシステムメモリとディスクに存在し、VFS iノードと実際のファイルシステムのiノードに分割できます。VFS iノードは、実際のファイルシステムのiノードを抽象化したもので、構造iノードとそれに関連する操作inode_operationsを定義します(カーネルソースコードインクルード/ linux / fs.hを参照)。

ファイルにはファイル名とデータがあり、Linuxではユーザーデータ(ユーザーデータ)とメタデータ(メタデータ)の2つの部分に分かれています。

  • ユーザーデータ、つまりファイルデータブロック(データブロック)。データブロックは、ファイルの実際のコンテンツが記録される場所です。
  • メタデータ:ファイルサイズ、作成時間、所有者など、ファイルの追加属性

Linuxでは、メタデータ内のiノード番号(inodeはファイルメタデータの一部ですが、ファイル名が含まれていません。iノード番号はiノード番号です)は、ファイル名ではなく、ファイルの一意の識別子です。ファイル名は単に人々の記憶と使用を容易にするためのものであり、システムまたはプログラムはiノード番号によって正しいファイルデータブロックを見つけます。

おすすめ

転載: www.cnblogs.com/lemanlai/p/12678816.html