検索
ホームページ運用・保守Linuxの運用と保守Linux のハード リンクでディレクトリをリンクできないのはなぜですか?

理由: ディレクトリへのハード接続を導入すると、ディレクトリにループが発生する可能性があります。ディレクトリを横断すると、システムが無限ループに陥り、アクセス ディレクトリを見つけることができなくなります。 Linux のディレクトリ構造は、「/directory」をルート ノードとするツリーです。カスタム ハード リンクが許可されている場合、この構造が破壊され、さらにはループが形成される可能性があります。ループが形成されると、ディレクトリツリーを走査することは致命的です。したがって、ディレクトリ ツリー構造の損傷を避けるために、Linux ではユーザーがディレクトリ上のハード リンクをカスタマイズすることはできません。

Linux のハード リンクでディレクトリをリンクできないのはなぜですか?

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

LINUX ハード リンクをディレクトリにリンクすると、ディレクトリにハード リンクを導入するとディレクトリにループが発生する可能性があるため、ディレクトリにリンクできません。ディレクトリを横断すると、システムが無限ループに陥り、ディレクトリを見つけることができなくなります。カタログにアクセスしてください。

Linux システムでは、各ファイル (ディレクトリもファイル) は inode 構造に対応しており、inode データ構造にはファイルの種類 (ディレクトリ、通常のファイル、シンボリック リンク ファイルなど) に関する情報が含まれています。つまり、オペレーティング システムはディレクトリをトラバースするときにシンボリック リンクを決定できます。シンボリック リンクを決定できるので、当然、過剰なループに入らないように何らかの措置を講じることができます。システムは 8 つのシンボリック リンクに遭遇するとトラバースを停止します。これが、ディレクトリのシンボリック接続が無限ループに入らない理由です。ただし、ハード接続の場合、オペレーティング システムで使用されるデータ構造とアルゴリズムの制限により、このような無限ループを防ぐことは現時点では不可能です。

Linux におけるハード接続の本質

問題について説明する前に、ハード接続の本質について話しましょう。

ハード リンクは、実際には、ディレクトリの i ノードが指すブロックのコンテンツです。ディレクトリ ブロック内の各レコードはハード リンクです。 Linux では、ディレクトリ自体がファイルの一種 (ディレクトリ ファイル、記号 d) であり、「ディレクトリ ファイル」のファイル内容はハード リンクです。

例 (図内のディレクトリ接続数の変化に注目してください):

Linux のハード リンクでディレクトリをリンクできないのはなぜですか?

tmp 数の変更前後の図ディレクトリ接続は次のとおりです (赤い線は接続番号のソースを示します):

Linux のハード リンクでディレクトリをリンクできないのはなぜですか?

上記の例を通じて、ディレクトリ接続時のハード リンクの数がわかります。作成されたばかりのディレクトリは 2 で、1 つは親ディレクトリから、もう 1 つはそれ自体から取得されます。ディレクトリのサブディレクトリを作成すると、ハード接続の数が 1 から 3 に変わります。これは、サブディレクトリからの追加の「..」接続があるためです。

ここで疑問に思う人もいるかもしれませんが、ディレクトリにはハード リンクは使用できないということなのではないでしょうか?上のデモでは何が起こっているのでしょうか?

ここで、「ディレクトリにはハード リンクを使用できない」という概念を明確にする必要があります。これは、ディレクトリへのハード リンクはユーザーがカスタマイズできず、オペレーティング システムによってのみ維持できることを意味します。実際、ディレクトリとハード リンクは分離できず、相互に統合されています。 「ハード リンク」自体は、実際にはディレクトリがそのサブファイル名とサブディレクトリ名を維持する方法です。

カスタム ハード接続の悪夢: ループ

ハード接続の性質について話した後、今日のトピックに戻ります。ユーザー定義のディレクトリへのハードリンクを許可しますか?

Linux のディレクトリ構造は、「/directory」をルート ノードとするツリーであることがわかっています。カスタム ハード リンクを許可すると、この構造が破壊されたり、ループが形成されたりする可能性があります。たとえば、次のようになります。次のコマンドが正常に実行できた場合:

Linux のハード リンクでディレクトリをリンクできないのはなぜですか?

Linux のハード リンクでディレクトリをリンクできないのはなぜですか?

ループが形成されると、ループを横断する必要があるコマンドにとって致命的になります。ディレクトリ ツリー (たとえば、上から下へ。下から上へ移動する du コマンドと、下から上へ移動する pwd コマンド)。したがって、ディレクトリ ツリー構造の損傷を避けるために、Linux ではユーザーがディレクトリ上のハード リンクをカスタマイズすることはできません。ソフトリンクにこの制限がない理由は、ソフトリンクファイルはシステムが認識できる特殊なファイルタイプであるのに対し、「ハードリンクファイル」はシステムの通常のファイルと何ら変わりなく、判断できないためです。

関連する推奨事項: 「Linux ビデオ チュートリアル

以上がLinux のハード リンクでディレクトリをリンクできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Linuxメンテナンスモード:目的の理解Linuxメンテナンスモード:目的の理解Apr 28, 2025 am 12:01 AM

メンテナンスモードは、システムのメンテナンスと修理に使用され、管理者が簡素化された環境で作業できるようにします。 1。システム修理:破損したファイルシステムとブートローダーを修理します。 2。パスワードリセット:ルートユーザーパスワードをリセットします。 3。パッケージ管理:ソフトウェアパッケージをインストール、更新、または削除します。 GRUB構成を変更するか、特定のキーを使用してメンテナンスモードを入力することにより、メンテナンスタスクを実行した後、安全に終了できます。

Linux操作:ネットワーキングとネットワーク構成Linux操作:ネットワーキングとネットワーク構成Apr 27, 2025 am 12:09 AM

Linuxネットワークの構成は、次の手順で完了できます。1。ネットワークインターフェイスを構成し、IPコマンドを使用して、構成ファイルの永続性設定を一時的に設定または編集します。 2。固定IPを必要とするデバイスに適した静的IPを設定します。 3.ファイアウォールを管理し、iPtablesまたはFirewalldツールを使用してネットワークトラフィックを制御します。

Linuxのメンテナンスモード:システム管理者ガイドLinuxのメンテナンスモード:システム管理者ガイドApr 26, 2025 am 12:20 AM

メンテナンスモードは、Linuxシステム管理において重要な役割を果たし、修復、アップグレード、構成の変更を支援します。 1.メンテナンスモードを入力します。 Grubメニューから選択するか、コマンド「sudosystemctlisolaterscue.target」を使用できます。 2。メンテナンスモードでは、ファイルシステムの修理およびシステムの更新操作を実行できます。 3.高度な使用法には、ルートパスワードのリセットなどのタスクが含まれます。 4.メンテナンスモードに入ったり、ファイルシステムをマウントできないなどの一般的なエラーは、GRUB構成をチェックしてFSCKコマンドを使用して固定できます。

Linuxのメンテナンスモード:それを使用する時期と理由Linuxのメンテナンスモード:それを使用する時期と理由Apr 25, 2025 am 12:15 AM

Linuxメンテナンスモードを使用するタイミングと理由:1)システムが起動するとき、2)主要なシステムの更新またはアップグレードを実行するとき、3)ファイルシステムメンテナンスを実行するとき。メンテナンスモードは、安全で制御された環境を提供し、運用上の安全性と効率を確保し、ユーザーへの影響を減らし、システムセキュリティを強化します。

Linux:必須コマンドと操作Linux:必須コマンドと操作Apr 24, 2025 am 12:20 AM

Linuxの不可欠なコマンドは次のとおりです。1.LS:リストディレクトリの内容; 2.CD:作業ディレクトリを変更します。 3.mkdir:新しいディレクトリを作成します。 4.RM:ファイルまたはディレクトリを削除します。 5.CP:ファイルまたはディレクトリをコピーします。 6.MV:ファイルまたはディレクトリの移動または名前を変更します。これらのコマンドは、カーネルと対話することにより、ユーザーがファイルとシステムを効率的に管理するのに役立ちます。

Linux操作:ファイル、ディレクトリ、およびアクセス許可の管理Linux操作:ファイル、ディレクトリ、およびアクセス許可の管理Apr 23, 2025 am 12:19 AM

Linuxでは、ファイルおよびディレクトリ管理ではLS、CD、MKDIR、RM、CP、MVコマンドを使用し、許可管理はCHMOD、CHOWN、およびCHGRPコマンドを使用します。 1。LS-Lなどのファイルおよびディレクトリ管理コマンドは、詳細情報、MKDIR-Pを再帰的に作成するディレクトリを再帰的に作成します。 2。CHMOD755FILEセットファイル許可、CHOWNUSERFILEファイル所有者、CHGRPGROUPFILEの変更ファイルグループなどの許可管理コマンド。これらのコマンドは、ファイルシステム構造とユーザーおよびグループシステムに基づいており、システムコールとメタデータを介して動作および制御します。

Linuxのメンテナンスモードとは何ですか?説明したLinuxのメンテナンスモードとは何ですか?説明したApr 22, 2025 am 12:06 AM

メンテナンスメモデンリンリンアスピアルブーテンビロンメント、criticalsystemmaincencetasks.itallowsadministratorstopertopertopertopersetstingtingpasswords、Repainingfilesystems、およびRecoveringfrombootfailurureSinaMinimalenvironment.

Linux:基本的な部分に深く潜りますLinux:基本的な部分に深く潜りますApr 21, 2025 am 12:03 AM

Linuxのコアコ​​ンポーネントには、カーネル、ファイルシステム、シェル、ユーザー、カーネルスペース、デバイスドライバー、パフォーマンスの最適化とベストプラクティスが含まれます。 1)カーネルは、ハードウェア、メモリ、プロセスを管理するシステムのコアです。 2)ファイルシステムはデータを整理し、Ext4、BTRFS、XFSなどの複数のタイプをサポートします。 3)シェルは、ユーザーがシステムと対話するためのコマンドセンターであり、スクリプトをサポートします。 4)システムの安定性を確保するために、ユーザースペースをカーネルスペースから分離します。 5)デバイスドライバーは、ハードウェアをオペレーティングシステムに接続します。 6)パフォーマンスの最適化には、システム構成とベストプラクティスのチューニングが含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境