Was macht das?
ln -nsf
Ich weiß, dass ln -s
ein symbolischer Link erstellt wird, kein fester Link, was bedeutet, dass Sie ihn löschen können und der Gedanke, mit dem er verknüpft ist, nicht gelöscht wird. Aber was bedeuten die anderen Dinge? (-nf)
Update: Okay ... also ich erinnere mich, dass Sie dieses Zeug über die Befehlszeile finden können. Folgendes habe ich beim Tippen herausgefunden ln --help
:
-f, --force remove existing destination files
-n, --no-dereference treat destination that is a symlink to a
directory as if it were a normal file
Aber mir ist immer noch nicht ganz klar, welche Auswirkungen dies hat. Warum sollte ich so einen Soft / Sym-Link erstellen wollen?
linux
command-line
Andrew
quelle
quelle
-s
, können Sie den Link löschen, ohne die Originaldatei zu löschen. Harte Links erhöhen die Linkanzahl der Datei, sodass diese nicht gelöscht wird, wenn Sie nur einen der Links zu dieser Datei löschen.Antworten:
Aus der BSD-Manpage:
quelle
Die
-n
Option (zusammen mit-f
) erzwingtln
die Aktualisierung einer symbolischen Verknüpfung zu einem Verzeichnis. was bedeutet das?Angenommen, Sie haben 2 Verzeichnisse
und eine bestehende symbolische Verbindung
Jetzt wollen Sie aktualisieren baz Punkt auf foo statt. wenn du es einfach tust
du würdest bekommen
wenn Sie hinzufügen
-n
Sie bekommen, was Sie wollen.
Das ist es, was "keine Dereferenzierung" bedeutet: Lösen Sie keine vorhandene Verknüpfung auf und platzieren Sie die neue Verknüpfung in diesem Verzeichnis, sondern aktualisieren Sie sie einfach.
quelle
Hier sind alle Optionen zu ln. Sie finden -n und -f hier.
quelle
Sie können "man ln" eingeben, um solche Dinge zu finden:
quelle
-f, --force entferne vorhandene Zieldateien
-n, --no-dereference Ziel behandeln, das ein Symlink zu einem Verzeichnis ist, als wäre es eine normale Datei
quelle
-f sagt, dass, wenn das Ziel Ihres Befehls eine vorhandene Datei ist, diese entfernt und durch die neue Verknüpfung ersetzt werden sollte. (Beachten Sie, dass "Datei" in Unix-beeinflussten Systemen Verzeichnisse, Links, Pipes usw. enthalten kann.)
-n ändert -f und gibt an, dass das angegebene Ziel, wenn es sich um eine vorhandene symbolische Verknüpfung handelt, nicht entfernt werden sollte.
quelle
-n
ist falsch.-f
allein ersetzt keinen Symlink zu einem Verzeichnis. Beim Ersetzen eines Symlinks in ein Verzeichnis muss-n
der vorhandene Symlink wie eine normale Datei anstelle eines Verzeichnisses behandelt werden.