Копировать относительные ссылки в абсолютные ссылки

Копировать относительные ссылки в абсолютные ссылки

Учитывая, что каталог /path/to/filesсодержит много относительных ссылок в виде строк foo -> ../other/data/foo, как мне скопировать ссылки, files/чтобы они стали ссылками с абсолютным путем?/mydata/path/

Я думал, что использую

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

это бы сделало, но это просто создает относительные пути в новом месте, которые дублируют относительный путь в старом месте, что означает, что все ссылки указывают в никуда.

Мне нужно в итоге получить:

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

На самом деле, в итоге я получаю следующее:

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

Я также пробовал различные варианты cp, хотя в macOS cp нет флага -s.

решение1

Ты ищешь realpath:

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

сделаю то, что вы хотите.

Связанный контент