antu
NGBler
Ich wollte gestern ein Verzeichnis von einer Partition auf eine andere verschieben, das Problem dabei war: Die Verknüpfungen in dem Verzeichnis waren alle absolut, d.h. sie fingen an mit "/mnt/sda1/<...>". Nach dem Kopieren hätte keine dieser Verknüpfungen mehr funktioniert. Es wäre ziemlich mühselig gewesen, die Verknüpfungen alle manuell zu korrigieren, glücklicherweise gibt es ein Programm das hier Abhilfe schafft: symlinks.
Mit symlinks kann man fehlerhafte Verknüpfungen reparieren und absolute Verknüpfungen zu relativen umwandeln. Um tote Verknüpfungen (solche, deren Ziel nicht mehr existiert) zu löschen, kann man symlinks -d <Verzeichnis> verwenden. Mit symlinks -c <Verzeichnis> werden unsaubere Verknüpfungen (die zu unnötige Slashes oder Punkte enthalten) gesäubert und absolute in relative Verknüpfungen umgewandelt. Damit symlinks rekursiv vorgeht, gibt man noch -r an. Mit -t kann man einen Testlauf machen, bei dem nur angezeigt wird, was symlinks tun würde.
Beispiel
[src=bash]ls -ladh Verknüpfung[/src]
[src=text]lrwxrwxrwx 1 antu antu 38 27. Jan 19:06 Verknüpfung -> /home/antu/Temporär/Testverzeichnis/[/src]
Verknüpfung verweist auf Testverzeichnis, mit einem absoluten Pfad. Mittels symlinks -c wird das korrigiert.
[src=bash]symlinks -c .[/src]
[src=text]absolute: /home/antu/Temporär/Verknüpfung -> /home/antu/Temporär/Testverzeichnis/
changed: /home/antu/Temporär/Verknüpfung -> Testverzeichnis[/src]
symlinks hat die Verknüpfung korrigiert. Aber noch mal zur Kontrolle:
[src=bash]ls -ladh Verknüpfung[/src]
[src=text]lrwxrwxrwx 1 antu antu 15 27. Jan 19:12 Verknüpfung -> Testverzeichnis[/src]
Jetzt hat Verknüpfung einen relativen Pfad.
Mit symlinks kann man fehlerhafte Verknüpfungen reparieren und absolute Verknüpfungen zu relativen umwandeln. Um tote Verknüpfungen (solche, deren Ziel nicht mehr existiert) zu löschen, kann man symlinks -d <Verzeichnis> verwenden. Mit symlinks -c <Verzeichnis> werden unsaubere Verknüpfungen (die zu unnötige Slashes oder Punkte enthalten) gesäubert und absolute in relative Verknüpfungen umgewandelt. Damit symlinks rekursiv vorgeht, gibt man noch -r an. Mit -t kann man einen Testlauf machen, bei dem nur angezeigt wird, was symlinks tun würde.
Beispiel
[src=bash]ls -ladh Verknüpfung[/src]
[src=text]lrwxrwxrwx 1 antu antu 38 27. Jan 19:06 Verknüpfung -> /home/antu/Temporär/Testverzeichnis/[/src]
Verknüpfung verweist auf Testverzeichnis, mit einem absoluten Pfad. Mittels symlinks -c wird das korrigiert.
[src=bash]symlinks -c .[/src]
[src=text]absolute: /home/antu/Temporär/Verknüpfung -> /home/antu/Temporär/Testverzeichnis/
changed: /home/antu/Temporär/Verknüpfung -> Testverzeichnis[/src]
symlinks hat die Verknüpfung korrigiert. Aber noch mal zur Kontrolle:
[src=bash]ls -ladh Verknüpfung[/src]
[src=text]lrwxrwxrwx 1 antu antu 15 27. Jan 19:12 Verknüpfung -> Testverzeichnis[/src]
Jetzt hat Verknüpfung einen relativen Pfad.