Dado un directorio /path/to/files
que 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 -s
bandera.
Respuesta1
Estás buscando realpath
:
ls -s $(realpath /path/to/files/*) /mydata/path/
hará lo que quieras.