Relative Links in absolute Links kopieren

Relative Links in absolute Links kopieren

Wie kopiere ich in einem Verzeichnis /path/to/files, das viele relative Links enthält, die in etwa so aussehen: So werden sie zu absoluten Pfadlinks auffoo -> ../other/data/foofiles//mydata/path/

Ich dachte, mit

ls -s $(readlink /path/to/files/*) /mydata/path/

würde es tun, aber es erstellt nur relative Pfade am neuen Speicherort, die den relativen Pfad am alten Speicherort duplizieren, was bedeutet, dass alle Links ins Leere zeigen.

Ich möchte am Ende Folgendes erreichen:

/path/to/files/foo -> ../other/data/foo
/mydata/path/foo -> /path/to/other/data/foo

Was ich letztendlich bekomme ist

/path/to/files/foo -> ../other/data/foo
/mydata/path/foo -> ../other/data/foo # broken link

Ich habe auch verschiedene Permutationen von ausprobiert cp, obwohl das macOS-CP kein Flag hat -s.

Antwort1

Du suchst nach realpath:

ls -s $(realpath /path/to/files/*) /mydata/path/

wird tun, was Sie wollen.

verwandte Informationen