Ich möchte eine symbolische Verknüpfung unter Linux herstellen. Ich habe diesen Bash-Befehl geschrieben, wobei der erste Pfad der Ordner ist, in den ich einen Link erstellen möchte, und der zweite Pfad die kompilierte Quelle ist.
ln -s '+basebuild+'/IpDome-kernel/kernel /home/build/sandbox/gen2/basebuild/IpDome-kernel/kernal
Ist das richtig?
Antworten:
So erstellen Sie einen neuen Symlink (schlägt fehl, wenn der Symlink bereits vorhanden ist):
So erstellen oder aktualisieren Sie einen Symlink:
quelle
ln
Syntax ist ähnlich dercp
Syntax, zB Quellenziel .cp
istCoPy
,ln
istLiNk
. Erster und dritter Buchstabe.Wo das
-s
es symbolisch macht.quelle
unlink LINK_NAME
ln -s where-the-symlink-should-point where-to-place-the-symlink-itself
.rm
, aber die meisten Leute wissen nicht, wie sie das Trailing entfernen sollen/
.quelle
Die Manpage finden Sie hier:
http://linux.die.net/man/1/ln
quelle
(Weil ein ASCII-Bild mehr als tausend Zeichen wert ist.)
Ein Pfeil kann eine hilfreiche Mnemonik sein, zumal es in Emacs 'Regie fast genau so aussieht.
Und ein großes Bild, damit Sie es nicht mit der Windows-Version verwechseln
Linux:
Windows:
Sie können diese auch als betrachten
Das
from-here
sollte noch nicht existieren, es soll erstellt werden, während dasto-here
schon existieren soll (IIRC).(Ich bin immer durcheinander, ob verschiedene Befehle und Argumente einen bereits vorhandenen oder einen zu erstellenden Speicherort betreffen sollten.)
EDIT: Es sinkt immer noch langsam für mich; Ich habe eine andere Art, wie ich in meinen Notizen geschrieben habe.
quelle
dired
ist es ganz einfach, wenn Sie den Mauszeiger über Ihr Ziel bewegen, drückenS
und das Verzeichnis eingeben, in dem der Link erstellt werden soll. Verkürzt die Lücke zwischen der Vorstellung des gewünschten Ergebnisses und der Eingabe. Siehe gnu.org/software/emacs/manual/html_node/emacs/… .http://unixhelp.ed.ac.uk/CGI/man-cgi?ln
quelle
man ln
, was es nenntln -s TARGET LINK_NAME
Zur ursprünglichen Frage:
Dadurch wird in der Tat ein symbolischer Link (
-s
) aus der Datei / dem Verzeichnis erstellt:zu Ihrem neuen Link
Hier sind einige Möglichkeiten, wie Sie sich erinnern können:
Erstens gibt es die Manpage für
ln
. Sie können darauf zugreifen, indem Sie in Google nach "man ln" suchen, oder einfach ein Terminalfenster öffnen und eingeben,man ln
und Sie erhalten die gleichen Informationen. In der Manpage heißt es eindeutig:Wenn Sie nicht jedes Mal eine Manpage durchsuchen oder lesen müssen, fällt es Ihnen möglicherweise leichter, sich daran zu erinnern, dass alle nix-Befehle auf dieselbe Weise funktionieren::
cp
kopiert eine aktuell vorhandene Datei (das erste Argument) in eine neue Datei (das zweite Argument).mv
verschiebt eine aktuell vorhandene Datei (das erste Argument) an einen neuen Ort (das zweite Argument)Ebenso
ln
verbindet eine Datei , die zur Zeit (das erste Argument) zu einer neuen Verbindung besteht (das zweite Argument) *Die letzte Option, die ich vorschlagen möchte, ist, dass Sie Ihre eigenen Manpages erstellen können, die leicht zu lesen und (für Sie) leicht zu finden / zu merken sind. Erstellen Sie einfach ein einfaches Shell-Skript, das Ihnen den Hinweis gibt, den Sie benötigen. Zum Beispiel ♦ :
In Ihrer .bash_aliases-Datei können Sie Folgendes platzieren:
Wenn Sie es dann brauchen, geben Sie einfach über die Befehlszeile ein
cmds
und Sie erhalten die richtige Syntax zurück, so dass Sie sie schnell lesen und verstehen können. Sie können diese Funktionen so erweitern, wie Sie möchten, welche Informationen Sie benötigen. Es liegt an Ihnen. Sie können sie sogar interaktiv gestalten, sodass Sie nur den Anweisungen folgen müssen. So etwas wie:* - Natürlich können sie alle unterschiedliche Parameter annehmen und unterschiedliche Aufgaben ausführen und sowohl an Dateien als auch an Verzeichnissen arbeiten ... aber die Prämisse ist dieselbe
♦ - Beispiele mit der Bash-Shell
quelle
quelle
Erstellen symbolischer Links oder Softlinks unter Linux:
Öffnen Sie die Eingabeaufforderung Bash und geben Sie den folgenden Befehl ein, um einen symbolischen Link zu Ihrer Datei herzustellen:
A) Wechseln Sie zu dem Ordner, in dem Sie einen Softlink erstellen möchten, und geben Sie den folgenden Befehl ein :
B) Gehen Sie zu Ihrem Pfad für den neuen Dateinamen und geben Sie Folgendes ein :
$ ls -lrt (To see if the new-file is linked to the file or not)
Beispiel:
quelle
ln -s sourcepath linkpathname
Hinweis:
-s macht symbolische Links anstelle von harten Links
quelle
Wenn Sie sich in dem Verzeichnis befinden, in dem Sie einen Symlink erstellen möchten, ignorieren Sie den zweiten Pfad.
Es wird ein Symlink von
target
innen erstelltmyfolder
.Allgemeine Syntax
quelle
Dies ist ein Stapelüberlauf, daher gehe ich davon aus, dass Sie Code möchten:
Der folgende Code setzt voraus, dass Sie einen symbolischen Link mit dem Namen erstellen möchten
/tmp/link
, die Links zu/tmp/realfile
.VORSICHT : Obwohl dieser Code nach Fehlern sucht, prüft er NICHT, ob
/tmp/realfile
tatsächlich vorhanden ist! Dies liegt daran, dass ein toter Link noch gültig ist und Sie abhängig von Ihrem Code (selten) den Link vor der eigentlichen Datei erstellen möchten.Shell (bash, zsh, ...)
Ganz einfach, genau wie Sie es in der Befehlszeile tun würden (das ist die Shell). Die gesamte Fehlerbehandlung erfolgt durch den Shell-Interpreter. Dieser Code setzt voraus, dass Sie einen funktionierenden Shell-Interpreter bei haben
/bin/sh
.Bei Bedarf können Sie trotzdem Ihre eigene Fehlerbehandlung implementieren, indem Sie die
$?
Variable verwenden, die nur dann auf 0 gesetzt wird, wenn der Link erfolgreich erstellt wurde.C und C ++
symlink
Gibt nur 0 zurück, wenn der Link erstellt werden kann. In anderen Fällen benutze ichperror
erzähle ich mehr über das Problem.Perl
Dieser Code setzt voraus, dass Sie einen Perl 5-Interpreter bei haben
/usr/bin/perl
.symlink
Gibt nur 1 zurück, wenn der Link erstellt werden kann. In anderen Fällen drucke ich den Fehlergrund in die Standardfehlerausgabe.quelle
Ich möchte eine einfachere englische Version der bereits vorgestellten Beschreibungen präsentieren.
Der Befehl "ln" erstellt eine Link-DATEI und das "-s" gibt an, dass der Link-Typ symbolisch ist. Ein Beispiel für eine symbolische Linkdatei finden Sie in einer WINE-Installation (mit "ls -la" wird eine Zeile des Verzeichnisinhalts angezeigt):
Standard-Datei-Info-Zeug ist links (obwohl zu beachten ist, dass das erste Zeichen ein "l" für "Link" ist); Der Dateiname ist "a:" und das "->" zeigt auch an, dass die Datei ein Link ist. Grundsätzlich wird WINE mitgeteilt, wie Windows "Laufwerk A:" mit einem Diskettenlaufwerk unter Linux verknüpft werden soll. Das Erstellen eines symbolischen Links ÄHNLICH dazu (im aktuellen Verzeichnis und dies tatsächlich für WINE zu tun ist komplizierter; verwenden Sie das Dienstprogramm "winecfg"):
quelle
Verwenden Sie zum Erstellen eines symbolischen Links / Softlinks:
z.B:
quelle
Es gibt zwei Arten von Links:
Symbolische Links: Beziehen Sie sich auf einen symbolischen Pfad, der den abstrakten Speicherort einer anderen Datei angibt
Hardlinks: Beziehen Sie sich auf den spezifischen Speicherort der physischen Daten.
In Ihrem Fall Symlinks:
Sie können auf http://man7.org/linux/man-pages/man7/symlink.7.html verweisen
Sie können zu harte Links erstellen
Ein fester Link zu einer Datei ist vom ursprünglichen Verzeichniseintrag nicht zu unterscheiden. Änderungen an einer Datei sind praktisch unabhängig von dem Namen, mit dem auf die Datei verwiesen wird. Hardlinks verweisen normalerweise nicht auf Verzeichnisse und erstrecken sich möglicherweise nicht über Dateisysteme.
quelle
Es gibt grundsätzlich zwei Arten von Links:
Symbolische Links (weich): Link zu einem symbolischen Pfad, der den abstrakten Speicherort einer anderen Datei angibt
Harte Links: Link zum spezifischen Speicherort der physischen Daten.
Beispiel 1:
Das Obige ist ein Beispiel für einen festen Link, über den Sie eine Kopie Ihrer physischen Daten erhalten können.
Beispiel 2:
Der obige Befehl erstellt einen symbolischen Link zu file1.txt.
Wenn Sie eine Quelldatei löschen, haben Sie in soft nichts am Ziel.
Wenn Sie das tun:
ls -lai
Sie werden sehen, dass es für die Symlinks eine andere Inode-Nummer gibt.
Weitere Informationen finden Sie in der Manpage von ln auf Ihrem Linux-Betriebssystem.
quelle
hard link where you can have a copy of your physical data
- Ich denke, wir erstellen keine Kopie der physischen Daten. Nur ein anderer Name für die gleichen physischen Daten.Ich finde die Terminologien "Ziel" und "Verzeichnis" in den Manninformationen etwas verwirrend.
Das Ziel ist der Ordner, mit dem wir eine Verknüpfung herstellen, und das Verzeichnis der eigentliche Verknüpfung (nicht das Verzeichnis, mit dem Sie eine Verknüpfung herstellen). Wenn jemand die gleiche Verwirrung hat, fühlen Sie sich nicht allein.
Dies ist meine Interpretation zum Erstellen eines Symlinks (unter Linux):
Sie können zu dem Ordner navigieren, in dem Sie den Symlink erstellen und den Befehl ausführen möchten, oder den vollständigen Pfad für Ihren Symlink anstelle von NAME-OF-YOUR-SYMLINK angeben.
ODER
Ich hoffe das hilft denen (noch) etwas verwirrt.
quelle
So erstellen Sie einen Symlink in Vagrant. Schritte:
quelle