Gibt es eine Möglichkeit, den Wert eines symbolischen Links zu ersetzen?

Gibt es eine Möglichkeit, den Wert eines symbolischen Links zu ersetzen?

Gibt es eine Möglichkeit, den Wert eines symbolischen Links zu ersetzen?

Ich möchte beispielsweise einen symbolischen Link wie folgt ändern:

first -> /home/username/foo/very/long/directories/that/I/do/not/want/to/type/again

dazu:

second -> /home/username/bar/very/long/directories/that/I/do/not/want/to/type/again

Ich möchte nur zu fooändern bar.

Natürlich kann ich einen Link erneut erstellen, aber wenn es möglich ist, den Wert des Links zu ersetzen, wird es einfacher.

Antwort1

Sie können die Option -f, verwenden , um den vorhandenen Symlink zu entfernen, bevor der neue erstellt wird. Wenn das Ziel ein Verzeichnis ist, müssen Sie die Option , hinzufügen , um anzugeben , dass der Symlink wie eine normale Datei behandelt werden soll.--forceln-n--no-dereferenceln

ln -sfn target existing_link

Dieser Vorgang ist jedoch nicht atomar, wie lnder unlink()alte Symlink vor dem Aufruf symlink(), daher zählt er technisch gesehen nicht als Änderung des Wertes des Links. Wenn Ihnen dieser Unterschied wichtig ist, lautet die Antwort nein, Sie können den Wert eines vorhandenen Symlinks nicht ändern.

Sie können beispielsweise Folgendes tun, um einen neuen symbolischen Link zu erstellen und dabei einen Teil des alten Linkwerts zu ändern:

  ln -sfn "$(readlink existing_link | sed s/foo/bar/)" "existing_symlink"

Antwort2

second -> /home/username/bar/very/long/directories/that/I/do/not/want/to/type/again

Wenn Sie innerhalb von X arbeiten:

stat second

Druckt den Link und einige andere Informationen aus. Geben Sie ein ln -sund markieren Sie es dann /home/username/bar/very/long/directories/that/I/do/not/want/to/type/againmit dem Mauszeiger. Drücken Sie die mittlere Taste (oder beide Tasten, wenn Sie nur zwei haben). Die lange Zeile, die Sie nicht erneut eingeben wollten, wird an der Textmarke eingefügt.

Wenn Sie nicht unter X arbeiten, können Sie dasselbe durch die Installation erreichen gpm.

verwandte Informationen