Ich habe einen Verzeichnisbaum, auf eine Reihe von symbolischen Links zu Dateien unter hat /home
... allerdings habe ich bewegt /home
zu /mnt/home
und brauchen einen Weg , um alle der Symlinks „neu verknüpfen“. Existiert eine solche Funktionalität oder muss ich dazu ein Skript schreiben?
Als Beispiel habe ich so etwas wie das Folgende:
[root@trees ~]# ls -l /mnt/home/someone/something
total 4264
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 a -> /home/someone/someotherthing/a
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 b -> /home/someone/someotherthing/b
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 c -> /home/someone/someotherthing/c
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 d -> /home/someone/someotherthing/d
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 e -> /home/someone/someotherthing/e
/mnt/home/someone/something/subdir:
total 4264
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 a -> /home/someone/someotherthing/subdir/a
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 b -> /home/someone/someotherthing/subdir/b
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 c -> /home/someone/someotherthing/subdir/c
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 d -> /home/someone/someotherthing/subdir/d
lrwxrwxrwx 1 jnet www-data 55 2011-08-07 13:50 e -> /home/someone/someotherthing/subdir/e
Ich möchte einen Befehl, der alle symbolischen Links zu finden und zu den gleichen Orten relink aber darunter /mnt/home
statt/home
Existiert ein solcher Befehl?
quelle
/mnt
eines Pfads. Sie brauchen keine schickere Zeichenfolge als Verkettung.Ich weiß, dass dies nicht genau das ist, was der Autor verlangt, aber es scheint, dass sie bereits ihre Antwort haben, also füge ich dies für andere wie mich hinzu, die über die Frage stolpern.
Das Folgende sollte helfen, wenn eine flexiblere Lösung erforderlich ist, z. B. eine Reihe defekter symbolischer Verknüpfungen, die durch Ersetzen eines Teils der Ziele der symbolischen Verknüpfung behoben werden können.
z.B. Nach einer Änderung des Benutzernamens, um den alten Benutzernamen durch den neuen Benutzernamen im Ziel vieler Links zu ersetzen, nachdem der Umzug bereits durchgeführt wurde. Erstellen Sie ein Skript mit dem Namen replace-simlinks (siehe unten):
und rufe es mit dem folgenden Befehl auf:
Hoffe das hilft jemandem
edit: Vielen Dank an Gilles für den Kickstart zu diesem Skript und den Tipp zur Verwendung des symlinks-Skripts, um die Links relativ zu machen.
quelle
target=${target/"/home"/"/mnt/home"}
Sehr hilfreich. Vielen Dank./home
Als Symlink zu erstellen/mnt/home
, und alle vorhandenen Symlinks sind wieder gültig.quelle