Erstellen Sie rekursiv Symlinks für einen ganzen Baum

20

Ich suche nach einem Befehl, der einen ganzen Baum von Dateien in einem anderen Verzeichnis neu erstellt. Ich würde es vorziehen, alle Symlinks absolut zu haben. Kann ich das mit einem Fund und Xargs machen? ;-)

lzap
quelle
1
Ich habe keine Ahnung. Wenn Sie beispielsweise einen Symlink mit dem Namen " /tmp/somedirectoryZeigen auf" erstellen /home/me/somegreatdir, wird der gesamte Inhalt von somegreatdirunter angezeigt /tmp/somedirectory. Dies erfordert nur einen Symlink für den gesamten Baum. Oder was willst du noch?
Jankes

Antworten:

26

cp -rs source/ dest/sollte den Trick machen. Die Verzeichnisstruktur wird unter dest / neu erstellt, wobei jede Datei einen Symlink zu ihrem Gegenstück in der Quelle darstellt.

Pablo Castellazzi
quelle
Auch mein erster Versuch. Fehler beim cpErstellen des Symlinks für source/some_deeper_dir/files.
Jokester
1
Meiner Erfahrung nach müssen Sie den vollständigen Pfad zur Quelle verwenden (z. B. cp -Rs /home/myusername/source dest), sonst wird es sich beschweren. Hier ist ein Verweis
22 Grad
4

Falls dies cp -rsnicht die Antwort ist, nach der Sie suchen, ist dies lndirmöglicherweise die richtige Antwort.

Mikko Rantalainen
quelle
Verarbeitet perfekt tiefe Unterverzeichnisstrukturen. Installierte es auf Debian mitsudo apt-get install xutils-dev
user299481