Copiar enlaces relativos a enlaces absolutos

Copiar enlaces relativos a enlaces absolutos

Dado un directorio /path/to/filesque contiene muchos enlaces relativos como foo -> ../other/data/foo, ¿cómo copio los enlaces files/para que sean enlaces de ruta absoluta?/mydata/path/

Pensé en usar

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

Lo haría, pero simplemente crea rutas relativas en la nueva ubicación que duplican la ruta relativa en la ubicación anterior, lo que significa que todos los enlaces apuntan a nada.

Lo que necesito es terminar con:

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

Lo que realmente termino es

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

También probé varias permutaciones de cp, aunque el cp de macOS no tiene una -sbandera.

Respuesta1

Estás buscando realpath:

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

hará lo que quieras.

información relacionada