Verhalten:
me@local: tree
.
|-- ba
| `-- file.txt
|-- foo
| `-- file.txt -> ba/file.txt
`-- foobar
Nehmen wir jetzt an, ich verschiebe die Datei file.txt von ba
nach foobar
:
me@local: mv ba/file.txt foobar/file.txt
Ich habe festgestellt, dass der Symlink im Ordner foo immer noch auf den ba/file.txt
Pfad verweist .
Gibt es eine Möglichkeit, Symlinks zu erstellen, die die Pfade automatisch aktualisieren, wenn die Quelldatei verschoben wird?
Oder Symlinks, die gelöscht werden, wenn ich die Quelldatei lösche?
Wird super sein.
quelle
ln
es ohne funktioniert-s
;)-s
mitln
Angst benutzt hat, hätte ich nie gedacht, dass es angemessen ist, dies zu tun. In Wirklichkeit ist dies kein Problem, es sei denn, Sie haben verrückte Partitionierungsschemata und verschieben Dateien viel darüber.Soweit mir bekannt ist, gibt es mit den normalen Linux-Dateisystemen keine Möglichkeit, dies zu tun.
Symlinks sind wirklich nur ein dummer Text, der sagt "Schau, ich heiße wirklich Foo" - es gibt keine Überprüfung, ob Foo existiert, wie du herausgefunden hast. Sie können Symlinks erstellen, die auf nichts verweisen, genauso einfach wie Symlinks, die auf etwas Nützliches verweisen.
Vielleicht kann jemand mit mehr Kenntnissen über andere Dateisysteme als ext2 / 3/4 (wie z. B. jfs? Oder zfs? Oder zfs?) Sagen, ob dies unter fortgeschritteneren Dateisystemen als ext2 / 3/4 möglich ist. Vielleicht unterstützt NTFS dies sogar? NTFS hat keine Symlinks als solche, aber es gibt noch eine andere, etwas ähnliche Sache (deren Name mir gerade entgeht).
quelle
Ja, du kannst.
In die Shell müssen Sie Folgendes eingeben:
Dies ist ein starker Link, und wenn Sie die Datei in ba / file.txt sogar löschen, bleibt sie in foo / file.txt (Sie können sehen, wie viele Links es mit dem
ls -l
Befehl gibtWenn Sie das tun möchten, was Sie getan haben (einen symbolischen Link erstellen), müssen Sie Folgendes eingeben:
quelle