Ich habe eine Reihe von Dateien in einem Verzeichnis und Links zu jeder dieser Dateien in einem anderen Verzeichnis. Das ls -l
sieht ungefähr so aus:
lrwxrwxrwx 1 rembol rembol 89 Jan 25 10:00 copyright.txt -> /home/rembol/solr/target/deploy/data/core/copyright.txt
lrwxrwxrwx 1 rembol rembol 92 Jan 25 10:00 jar-versions.xml -> /home/rembol/solr/target/deploy/data/core/jar-versions.xml
lrwxrwxrwx 1 rembol rembol 85 Jan 25 10:00 lgpl.html -> /home/rembol/solr/target/deploy/data/core/lgpl.html
lrwxrwxrwx 1 rembol rembol 79 Jan 25 10:00 lib -> /home/rembol/solr/target/deploy/data/core/lib
lrwxrwxrwx 1 rembol rembol 87 Jan 25 10:00 readme.html -> /home/rembol/solr/target/deploy/data/core/readme.html
drwxr-xr-x 3 rembol rembol 4096 Jan 25 10:00 server
drwxr-xr-x 2 rembol rembol 4096 Jan 25 10:00 startup
/home/rembol/solr/target/deploy
Jetzt möchte ich diese verknüpften Dateien von nach verschieben /home/rembol/output/
. Wenn ich das mache, indem ich einfach aufrufe mv
, werden die Links unterbrochen. Ich möchte nicht jede Datei einzeln neu verknüpfen, da es Hunderte davon gibt (sie werden automatisch generiert).
Gibt es eine clevere Möglichkeit, verknüpfte Dateien zu verschieben, anstatt ein Skript zu schreiben, das für jede Datei in jedem Unterverzeichnis rekursiv die Verknüpfung aufhebt, verschiebt und erneut verknüpft?
Antwort1
Kurz gesagt, das mv
geht nicht. Sie müssen die Links selbst neu ausrichten. Ich wollte einen Vorschlag machen, wie das geht, aber es gibt bereits eine wirklich gute Antwort auf eineähnliche Frageauf der Unix/Linux-Site gepostet.