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/foo
files/
/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.