Ich benötige einen Symlink, der sich relativ zu dem Verzeichnis auflöst, in dem er abgelegt ist. Mit welchem Befehl wird so etwas erstellt?
linux
command-line
symbolic-link
Jeremiah Rose
quelle
quelle
ln -s ../some/other/file /some/dir/linkname
ln -s ./file linkname
da.
auf das aktuelle Verzeichnis verwiesen wird.ln -s somedir/original-dir link-name
funktioniert nicht. Es wird ein Verzeichnis mit Namen erstelltlink-name
, das einen ungültigen Link enthält. Der Befehl, der funktioniert, istln -sr somedir/original-dir link-name
Neuere Versionen von GNU coreutils 'ln (> = 8.16) unterstützen die Option
--relative
(oder-r
), dh Sie könnenln -s
2 absolute oder relative (in Bezug auf Ihr Arbeitsverzeichnis) Pfade aufrufen, und es wird der korrekte relative Pfad ermittelt, der sein muss geschrieben an den symlink.quelle
-r
Option ist hilfreich , wenn Sie sind Quer Compilieren und brauchen absolute Pfade auf der Build - Host , aber relative Pfade auf dem Ziel.ln -r -s targetfile myalias
kann Ihnen helfen, es zu behebenGrundsätzlich müssen Sie verstehen, dass ein Symlink eher einer Textdatei gleicht als einem Verzeichniseintrag, der eine Datei enthält. Also wenn du
dann ist das ganz ähnlich
Dem System ist es egal, ob
/file/../poo
überhaupt vorhanden, es ist nur ein Text, der in den Symlink eingefügt wird. Wenn etwas versucht, den Symlink zu öffnen , versucht das System, ihn aufzulösen.Wenn Sie eine Shell mit Dateinamensvervollständigung verwenden, kann diese Funktion Probleme verursachen, da Sie einen Dateinamen relativ zu Ihrem aktuellen Arbeitsverzeichnis vervollständigen können, auch wenn Sie diesen dann als Ziel eines Symlinks in einem vollständig anderen Verzeichnis verwenden.
quelle
<
zu ändern, wie das System Speicher zuweist. Natürlich gibt es<
in diesem Verzeichnis keine benannten Dateien. Es ist nur eine kostengünstige Möglichkeit, eine sehr kleine Datei zu erstellen, die gegenüber einer normalen Textdatei auf dieser bestimmten Plattform einige attraktive Eigenschaften aufweist.Relative Links waren für mich unter OS X schwierig, z
beide funktionierten nicht (etwas wurde erstellt, aber es war kein Verzeichnis). Ich habe den gewünschten Link mit absoluten Pfaden erstellt .
quelle
ln -s Dropbox/git/codyhess/bin ~/bin
Ich wollte nur erklären, wie man einen Symlink mit relativen Pfaden erstellt (mit einem detaillierten Beispiel).
Wie Ignacio Vazquez-Abrams in den Kommentaren erwähnt hat, müssen Sie den Speicherort der Datei / des Ordners relativ zu dem Ort angeben, an dem der Symlink erstellt wird, nicht relativ zu Ihrem aktuellen Verzeichnis.
BEISPIEL
Sie befinden sich in
/usr/share/nginx/html/_src/learn
Sie erstellen einen Symlinkcoding
in/usr/share/nginx/html
Relativen Symlink erstellen (Theorie):
Erstelle einen tatsächlichen relativen Symlink:
Weitere Informationen (gleiches Beispiel)
quelle