


Warum können Linux-Hardlinks keine Verzeichnisse verknüpfen?
Grund: Das Herstellen einer festen Verbindung zum Verzeichnis kann zu einer Schleife im Verzeichnis führen. Wenn das Verzeichnis durchlaufen wird, gerät das System in eine Endlosschleife, was dazu führt, dass das Verzeichnis, auf das zugegriffen wird, nicht gefunden werden kann. Die Verzeichnisstruktur von Linux ist ein Baum mit „/directory“ als Stammknoten. Wenn benutzerdefinierte feste Links zulässig sind, wird diese Struktur wahrscheinlich zerstört und es entsteht sogar eine Schleife, die Befehle durchlaufen müssen Verzeichnisbaum wird, ist fatal. Um eine Beschädigung der Verzeichnisbaumstruktur zu vermeiden, erlaubt Linux Benutzern daher nicht, Hardlinks im Verzeichnis anzupassen.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
Der harte Link von LINUX kann nicht mit dem Verzeichnis verknüpft werden, da die Einführung eines festen Links zum Verzeichnis zu einer Schleife im Verzeichnis führen kann. Wenn das Verzeichnis durchlaufen wird, gerät das System in eine Endlosschleife die Unfähigkeit, das Zugriffsverzeichnis zu finden.
Im Linux-System entspricht jede Datei (Verzeichnis ist auch eine Datei) einer Inode-Struktur. Die Inode-Datenstruktur enthält Informationen über den Dateityp (Verzeichnis, normale Datei, symbolische Linkdatei usw.). , Das Betriebssystem kann beim Durchlaufen des Verzeichnisses symbolische Links ermitteln. Natürlich können einige Maßnahmen ergriffen werden, um übermäßige Schleifen zu verhindern. Das System stoppt den Durchlauf Warum das Verzeichnis Der Grund, warum symbolische Links nicht in eine Endlosschleife gelangen. Bei harten Verbindungen ist es jedoch aufgrund der Einschränkungen der Datenstruktur und des im Betriebssystem verwendeten Algorithmus derzeit unmöglich, diese Endlosschleife zu verhindern.
Das Wesen der harten Verbindung unter Linux
Bevor wir das Problem besprechen, sprechen wir über das Wesen der harten Verbindung.
Der Hardlink ist eigentlich der Inhalt des Blocks, auf den der Inode des Verzeichnisses zeigt. Jeder Datensatz im Verzeichnisblock ist ein fester Link. Das Verzeichnis selbst ist eine Art Datei in Linux (Verzeichnisdatei, Symbol d), und der Dateiinhalt der „Verzeichnisdatei“ ist ein fester Link.
Zum Beispiel (achten Sie auf die Änderung der Anzahl der Verzeichnisverbindungen im Bild):
Das Diagramm vor und nach der Änderung der Anzahl der tmp-Verzeichnisverbindungen sieht wie folgt aus (die rote Linie zeigt die Quelle an). der Verbindungsnummer):
Wie Sie dem obigen Beispiel entnehmen können: Wenn ein Verzeichnis zum ersten Mal erstellt wird, beträgt die Anzahl der Hardlinks 2, von denen einer aus dem übergeordneten Verzeichnis und der andere aus seinem eigenen stammt. ." Wenn Sie ein Unterverzeichnis für das Verzeichnis erstellen, beträgt die Anzahl der festen Verbindungen +1 und wird 3. Dies liegt daran, dass es eine zusätzliche „..“-Verbindung aus dem Unterverzeichnis gibt.
Manche fragen sich an dieser Stelle vielleicht: Bedeutet das nicht, dass Hardlinks nicht für Verzeichnisse verwendet werden können? Was ist mit der obigen Demo los?
Hier muss ein Konzept geklärt werden: „Hardlinks können nicht für Verzeichnisse verwendet werden“, was bedeutet, dass Hardlinks zu Verzeichnissen nicht von Benutzern angepasst werden können, sondern nur vom Betriebssystem verwaltet werden können. Tatsächlich sind Verzeichnisse und Hardlinks untrennbar miteinander verbunden und integriert. Der „Hardlink“ selbst ist eigentlich die Art und Weise, wie ein Verzeichnis seine Unterdateinamen und Unterverzeichnisnamen verwaltet.
Der Albtraum benutzerdefinierter Hardlinks: Schleifen
Nachdem wir über die Natur von Hardlinks gesprochen haben, können wir zum heutigen Thema zurückkehren: Warum dürfen Benutzer die Hardlinks von Verzeichnissen nicht anpassen?
Wir wissen, dass die Verzeichnisstruktur von Linux ein Baum mit „/directory“ als Wurzelknoten ist. Wenn benutzerdefinierte Hardlinks zulässig sind, kann es sein, dass diese Struktur zerstört wird oder sogar eine Schleife entsteht, wenn beispielsweise der folgende Befehl ausgeführt wird kann erfolgreich ausgeführt werden. Wörter:
Sobald eine Schleife gebildet wird, ist sie für Befehle, die den Verzeichnisbaum durchlaufen müssen, fatal (z. B. der Befehl du, der von oben nach unten durchläuft, und der Befehl pwd). verläuft von unten nach oben). Um eine Beschädigung der Verzeichnisbaumstruktur zu vermeiden, erlaubt Linux Benutzern daher nicht, Hardlinks im Verzeichnis anzupassen. Der Grund, warum Softlinks diese Einschränkung nicht haben, liegt darin, dass Softlinkdateien einen speziellen Dateityp haben, der vom System erkannt werden kann, während sich „Hardlinkdateien“ nicht von normalen Dateien des Systems unterscheiden und nicht beurteilt werden können.
Verwandte Empfehlungen: „Linux-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWarum können Linux-Hardlinks keine Verzeichnisse verknüpfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Verwenden Sie Python im Linux -Terminal ...

Multithreading in der Sprache kann die Programmeffizienz erheblich verbessern. Es gibt vier Hauptmethoden, um Multithreading in C -Sprache zu implementieren: Erstellen Sie unabhängige Prozesse: Erstellen Sie mehrere unabhängig laufende Prozesse. Jeder Prozess hat seinen eigenen Speicherplatz. Pseudo-MultitHhreading: Erstellen Sie mehrere Ausführungsströme in einem Prozess, der denselben Speicherplatz freigibt und abwechselnd ausführt. Multi-Thread-Bibliothek: Verwenden Sie Multi-Thread-Bibliotheken wie PThreads, um Threads zu erstellen und zu verwalten, wodurch reichhaltige Funktionen der Thread-Betriebsfunktionen bereitgestellt werden. Coroutine: Eine leichte Multi-Thread-Implementierung, die Aufgaben in kleine Unteraufgaben unterteilt und sie wiederum ausführt.

Um eine Web.xml -Datei zu öffnen, können Sie die folgenden Methoden verwenden: Verwenden Sie einen Texteditor (z.

In Bezug auf das Problem der Entfernung des Python -Dolmetschers, das mit Linux -Systemen ausgestattet ist, werden viele Linux -Verteilungen den Python -Dolmetscher bei der Installation vorinstallieren, und verwendet den Paketmanager nicht ...

Linux wird am besten als Serververwaltung, eingebettete Systeme und Desktop -Umgebungen verwendet. 1) In der Serververwaltung wird Linux verwendet, um Websites, Datenbanken und Anwendungen zu hosten und Stabilität und Zuverlässigkeit bereitzustellen. 2) In eingebetteten Systemen wird Linux aufgrund seiner Flexibilität und Stabilität in Smart Home und Automotive Electronic Systems häufig verwendet. 3) In der Desktop -Umgebung bietet Linux reichhaltige Anwendungen und eine effiziente Leistung.

Debianlinux ist bekannt für seine Stabilität und Sicherheit und wird in Server-, Entwicklungs- und Desktop -Umgebungen häufig verwendet. Während es derzeit einen Mangel an offiziellen Anweisungen zur direkten Kompatibilität mit Debian und Hadoop gibt, wird dieser Artikel Sie dazu veranlassen, Hadoop in Ihrem Debian -System bereitzustellen. Debian -Systemanforderungen: Bevor Sie mit der Hadoop -Konfiguration beginnen, stellen Sie bitte sicher, dass Ihr Debian -System die Mindestanforderungen von Hadoop erfüllt, einschließlich der Installation der erforderlichen Java -Laufzeitumgebung (JRE) und Hadoop -Pakete. Schritte zur Bereitstellung von Hadoop -Bereitstellungen: Download und Unzip Hadoop: Laden Sie die Hadoop -Version von der offiziellen Apachehadoop -Website herunter und lösen Sie sie

"DebianStrings" ist kein Standardbegriff und seine spezifische Bedeutung ist noch unklar. Dieser Artikel kann seine Browserkompatibilität nicht direkt kommentieren. Wenn sich jedoch "DebianStrings" auf eine Webanwendung bezieht, die auf einem Debian -System ausgeführt wird, hängt seine Browserkompatibilität von der technischen Architektur der Anwendung selbst ab. Die meisten modernen Webanwendungen sind für die Kompatibilität des Cross-Browsers verpflichtet. Dies beruht auf den folgenden Webstandards und der Verwendung gut kompatibler Front-End-Technologien (wie HTML, CSS, JavaScript) und Back-End-Technologien (wie PHP, Python, Node.js usw.). Um sicherzustellen, dass die Anwendung mit mehreren Browsern kompatibel ist, müssen Entwickler häufig Kreuzbrowser-Tests durchführen und die Reaktionsfähigkeit verwenden

Muss ich einen Oracle -Client installieren, wenn ich mit GO eine Verbindung zu einer Oracle -Datenbank herstellen kann? Bei der Entwicklung in Go ist die Verbindung zu Oracle -Datenbanken eine übliche Anforderung ...
