Ln (Unix)
Originalautor (en) | AT & T Bell Laboratories |
---|---|
Entwickler (en) | Verschiedene Open Source und kommerziell Entwickler |
Erstveröffentlichung | 3. November 1971 |
Betriebssystem | Unix, Unix-artig, Ibm i |
Plattform | Plattformübergreifend |
Typ | Befehl |
Lizenz | CoreUtils: GPLV3+ |
Das ln
Befehl ist ein Standard UNIX -Befehl Dienstprogramm zum Erstellen von a harte Verbindung oder ein symbolischer Link (Symlink) zu einer vorhandenen Datei oder einem vorhandenen Verzeichnis.[1] Die Verwendung eines harten Links ermöglicht mehrere Dateinamen mit demselben assoziiert sein Datei da ein hartes Link auf die zeigt Inode einer bestimmten Datei, deren Daten auf gespeichert werden Scheibe. Auf der anderen Seite sind symbolische Links spezielle Dateien, die sich auf andere Dateien beziehen Name.[2]
Das ln
Der Befehl standardmäßig erstellt harte Links und wenn er mit dem aufgerufen wird Befehlszeile Parameter ln -s
erstellt symbolische Links.[3] Die meisten Betriebssysteme verhindern harte Verbindungen zu Verzeichnisse von der Erstellung, da eine solche Fähigkeit die Struktur von a stören könnte Dateisystem und stören den Betrieb anderer Versorgungsunternehmen.[4] Das ln
Der Befehl kann jedoch verwendet werden, um symbolische Links zu nicht existierenden Dateien zu erstellen.[2]
Geschichte
LN erschien in Ausgabe 2 der X/offen Portabilitätsrichtlinien.[5] Die Version von ln
gebündelt GNU CoreUtils wurde von Mike Parker und David Mackenzie geschrieben.[6] Der Befehl ist als separates Paket für verfügbar Microsoft Windows Im Rahmen des Unxutils Sammlung von einheimisch Win32 Häfen von gemeinsamen GNU-Unix-ähnlichen Versorgungsunternehmen.[7] Das ln Der Befehl wurde auch auf die portiert Ibm i Betriebssystem.[8]
Links
Links ermöglichen es mehr als einen Dateinamen, sich auf dieselbe Datei wie im Fall von a zu beziehen harte Verbindung oder handeln als Zeiger zu einem Dateinamen wie im Fall von a weicher Link. Sowohl harte Links als auch weiche Links können von der erstellt werden ln
Befehl. Speziell,
- Harte Links, auch einfach als Links bekannt, sind Objekte, die den Dateinamen mit dem assoziieren Inodeund daher der Dateiinhalt selbst.[1] Eine bestimmte Datei auf der Festplatte könnte mehrere Links über die verstreut sein Verzeichnishierarchie, da alle Links gleichwertig sind, da sie alle mit demselben assoziieren Inode.[9] Das Erstellen eines Links kopiert daher nicht den Inhalt der Datei, sondern führt lediglich dazu, dass ein anderer Name demselben Inhalt zugeordnet ist. Jedes Mal, wenn ein harter Link erstellt wird, ist a Linkzähler that is a part of the Inode -Struktur wird inkrementiert; Eine Datei wird erst gelöscht, wenn ihre Referenzzahl Null erreicht.[1][10] Harte Links können jedoch nur darauf erstellt werden Dateisystem; Dies kann sich als Nachteil erweisen.[11]
- Symbolische Links sind spezielle Dateien, die, wenn sie während der Auflösung von Pathname aufgetaucht sind, die ändern PATHNAME -Lösung zu dem Ort gebracht werden, den die symbolische Verbindung enthält. Der Inhalt der symbolischen Verbindung ist daher das Ziel Weg Zeichenfolge, die auch mit dem untersucht werden kann
readlink
Befehlszeile Dienstprogramm.[12] Der symbolische Link kann eine beliebige Zeichenfolge enthalten, die sich nicht auf den Speicherort einer vorhandenen Datei bezieht. Ein solcher symbolischer Link schlägt fehl, bis eine Datei an dem Ort erstellt wird, der durch den symbolischen Link enthalten ist. Im Gegensatz dazu fällt ein symbolischer Link zu einer vorhandenen Datei fehl, wenn die vorhandene Datei an einen anderen Ort verschoben (oder umbenannt) wird.[9]
Spezifikation
Das ln
Dienstprogramm für Systeme, die mit dem konform sind Einzel -Unix -Spezifikation wird im Dokument Shell and Utilities (XCU) angegeben, das Teil der einzelnen Unix -Spezifikation ist.[13] Ein meist identisches Dokument ist Teil von Posix.[5]
Die Spezifikation beschreibt zwei Möglichkeiten, die aufzurufen ln
Dienstprogramm. Speziell,
- Im Aufruf "Einzeldatei" die
ln
Das Dienstprogramm erstellt einen neuen harten Link (Verzeichniseintrag) für die von der angegebene Quelldateisource_file
Operand am Zielweg, das von der angegeben wurdetarget_file
Operand. Aber wenn die-s
Die Option wird angegeben, ein symbolischer Link wird erstellt. ln [-fs] [-L|-P] SOURCE_FILE TOIGE_FILE
- Im Aufruf "Mehrfachdatei" der
ln
Dienstprogramm erstellt einen neuen harten Link (Verzeichniseintrag) oder wenn die-s
Die Option wird angegeben, ein symbolischer Link für jede von der angegebene Dateisource_file
Operand, an einem Zielpfad in einem von Operand benannten Verzeichnistarget_dir
. ln [-fs] [-L|-P] source_file_1 source_file_2 ... target_dir
- Im Aufruf "Einzeldatei" die
Die Spezifikation gibt auch die Befehlszeilenoptionen an, die unterstützt werden müssen:
-
-f
Erzwingen Sie, dass vorhandene Zielpfadnamen entfernt werden, um die Verbindung zuzulassen. -
-L
Für jedensource_file
Operand, die eine Datei nennt, die ein symbolischer Link ist, erstellen Sie einen harten Link zu der Datei, auf die der symbolische Link verwiesen wird. -
-P
Für jedensource_file
Operand, die eine Datei nennt, die ein symbolischer Link ist, erstellen Sie einen (harten) Link zum symbolischen Link selbst. -
-s
Erstellen Sie symbolische Links anstelle von harten Links. Wenn die Option -S angegeben ist, werden die Optionen -l und -p still ignoriert. - Wenn mehr als eine der gegenseitig exklusiven Optionen
-L
und-P
wird angegeben, die letzte angegebene Option bestimmt das Verhalten des Nutzens. - Wenn die
-s
Option ist nicht angegeben und auch a-L
Noch a-P
Die Option wird angegeben, die Implementierung definiert, welche der der-L
und-P
Optionen werden als Standard verwendet.
-
Wenn weder die Zieldatei noch ein Zielverzeichnis angegeben sind, werden Links in der aktuellen Zeit erstellt Arbeitsverzeichnis.
Siehe auch
Verweise
- ^ a b c Kernighan, Brian W.; Pike, Rob (1984). Die UNIX -Programmierumgebung. Englewood Cliffs, N.J.: Prentice-Hall. p.59. ISBN 013937681X.
- ^ a b "GNU CoreUtils: LN -Aufruf". gnu.org. Free Software Foundation, Inc.. Abgerufen 7. August 2015.
- ^ "LN - Die offenen Gruppenbasis -Spezifikationen Ausgabe 7". Pubs.opengroup.org. Die IEEE und die offene Gruppe. Abgerufen 7. August 2015.
- ^ "Warum dürfen harte Links Verzeichnisse in Unix/Linux nicht erlaubt?". unix.stackexchange.com. Abgerufen 7. August 2015.
- ^ a b Die einzelne Unix -Spezifikation, Version 4 von Die offene Gruppe - Shell and Utilities Referenz,
- ^ Linux Allgemeine Befehle Handbuch - -
- ^ "Native Win32 -Ports einiger GNU -Dienstprogramme". Unxutils.SourceForge.net.
- ^ IBM. "IBM System I Version 7.2 Programmierung Qshell" (PDF). IBM. Abgerufen 2020-09-05.
- ^ a b Loosemore, Sandra; Stallman, Richard M.; McGrath, Roland; Oram, Andrew; Drepper, Ulrich. Das GNU C -Bibliotheksreferenzhandbuch (PDF). Free Software Foundation, Inc. p. 392. Abgerufen 7. August 2015.
- ^ "Unix sprechen: Es geht nur um den Inode". ibm.com. IBM Developerworks. Abgerufen 7. August 2015.
- ^ Bovet, Daniel P.; Cesati, Marco (2005). Verständnis des Linux -Kernels (3. Aufl.). Boston, MA: Safari -Tech -Bücher online. p. 14. ISBN 0596005652.
- ^ "Readlink (1) - Linux Man Page". Linux.die.net. Abgerufen 7. August 2015.
- ^ "Die Single Unix -Spezifikation, Version 4 - Übersicht". unix.org. unix.org. Abgerufen 7. August 2015.