Gibt es eine Möglichkeit, einen Softlink mit einem relativen Pfadnamen zu erstellen? (nicht relativ zur Home-Seite oder absolut)

Gibt es eine Möglichkeit, einen Softlink mit einem relativen Pfadnamen zu erstellen? (nicht relativ zur Home-Seite oder absolut)

Ich habe versucht, es relativ zum Kennwort zu verwenden, aber es funktioniert nicht.

Mein aktuelles Passwort unterscheidet sich vom Zielpfad und dem ursprünglichen Pfad (von wo aus der Link erstellt werden muss).

Ich kenne das Home-Verzeichnis nicht und kann daher keinen relativen Pfadnamen verwenden. Ein absoluter Pfadname ist nicht erforderlich.

Wie kann ich einen Softlink mit relativem Pfadnamen erstellen?

Antwort1

Ein relativer symbolischer Link ist relativ zu seinem übergeordneten Verzeichnis, d. h. er ist unabhängig vom aktuellen Verzeichnis eines Prozesses oder dem Home-Verzeichnis eines Benutzers.

Wenn beispielsweise /some/dir/linkein symbolischer Link zu ist ../foo/bar, dann ist dies ein symbolischer Link zu /some/dir/../foo/bar( /some/foo/barwenn /some/dirselbst kein symbolischer Link ist), unabhängig davon, was Ihr aktuelles oder Home-Verzeichnis ist.

Wenn Sie einen neuen symbolischen Link zu einer Datei relativ zum aktuellen Verzeichnis erstellen möchten (beispielsweise zu der bin/lsDatei in Ihrem aktuellen /home/stephaneVerzeichnis), können Sie Folgendes tun (in POSIX-ähnlichen Shells oder fish):

ln -s -- "$PWD/bin/ls" /some/dir/link

Dadurch wird ein absoluter symbolischer Link (zu /home/stephane/bin/ls) erstellt. Um einen relativen symbolischen Link zu erstellen, benötigen Sie:

ln -s ../../home/stephane/bin/ls /some/dir/link

(vorausgesetzt /someund /some/dirsind selbst keine symbolischen Links)

GNU lnbietet eine -rOption, die Ihnen bei der Berechnung dieses Pfades hilft:

ln -rs bin/ls /some/dir/link

(wodurch der gleiche symbolische Link zu erstellt würde ../../home/stephane/bin/ls).

Antwort2

Sie können symbolische Links mit relativen Pfaden erstellen

Beispiel: (Sie möchten einen symbolischen Link von einem Ordner erstellen , der sich im aktuellen Arbeitsverzeichnis bbbefindet, zu../../bbmylink

ln -s ../../bb/ mylink

$ ls -lsa mylink
0 lrwxrwxrwx 1 user user 9 Apr 18 15:51 mylink -> ../../bb/

Ein weiteres Beispiel, bei dem sich „mylink“ in einem zugehörigen Ordner befindet fürpwd

mkdir ../../tst
$ ln -s ../../bb/ ../../tst/mylink
$ ls -lsa ../../tst/mylink
0 lrwxrwxrwx 1 user user 9 Apr 18 16:08 ../../tst/mylink -> ../../bb/

verwandte Informationen